2017-02-05 5 views
0

Dies ist meine Klasse für ImageController (ein ViewController) Nur der Hintergrund der Sammlungsansicht wird angezeigt, während die Zellen darin nicht angezeigt werden. Irgendeine Hilfe? Gibt es etwas, das ich nicht richtig initialisiert habe? HierUICollectionView-Zellen werden nicht angezeigt, während UICollectionView-Hintergrund ist

ist die Klasse:

class ImageController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate { 

    let reuseIdentifier = "imageCell" 

    @IBOutlet weak var collectionView: UICollectionView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return 10 
    } 

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! ImageCell 

     cell.myImage.image = unknown //name of image, isn't the cause of error 

     return cell 
    } 

} 
+0

Haben Sie tatsächlich den Delegaten und die Datenquelle zugewiesen? Ich sehe, du bist VC ist eingerichtet, um zu beiden zu entsprechen, aber Sie müssen immer noch sagen "collectionView.delegate = self" und "collectionView.dataSource = self" – Pierce

Antwort

0

Sie im viewDidLoad() hinzufügen sollte:

collectionView.delegate = self 
collectionView.dataSource = self 

Versuchen Sie auch, die Methoden zu debuggen (Haltepunkte und überprüfen, ob sie erreichbar sind).

Hoffe das half.

+0

Das hat funktioniert! Nur eine kurze Frage: Ich habe eine ähnliche Klasse/Controller, die diese zwei Zeilen Code nicht verwendet, und es funktioniert immer noch gut. Irgendeine Idee warum das sein könnte? – Shekar

+0

Wahrscheinlich haben Sie UICollectionViewController oder verbundene Delegaten von UICollectionView in ViewController Scene hinzugefügt. – Aragunz

+0

@Shekar Ja, ich möchte die CollectionView vom Storyboard aus überprüfen und sehen, ob sie mit ihrer Delegate/dataSource verbunden ist, oder es ist vielleicht ein UICollectionViewController, der automatisch vom Stogrobboard aus verbunden wird –

0

Wenn Sie die oben genannten Codezeilen nicht verwenden möchten, klicken Sie einfach mit der rechten Maustaste auf die Auflistung und ziehen Sie den gelben Bereich in ViewController Scene, und wählen Sie delegate und dataSoruce aus. enter image description here

Verwandte Themen