2016-06-28 7 views
0

wie angezeigt wird .. UICollectionViewCell?Nicht angezeigt (aufgerufen) UICollectionViewCell ... (programmgesteuert)

Collectionbackground erschienen ist ..

Aber Zelle .. ist nicht erschienen ...

Ich weiß nicht ... warum dies scheint nicht (genannt) Cell ...

überprüfen Sie bitte diesen Code.

Full source code is here(github)

class itemsCollectionView: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout { 


var myItemCollectionView: UICollectionView! 

override func viewDidLoad() { 
    view.backgroundColor = UIColor.redColor() 

    let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 

    layout.sectionInset = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5) 
    layout.itemSize = CGSizeMake(50, 50) 
    layout.minimumInteritemSpacing = CGFloat(5.0) 
    layout.scrollDirection = .Horizontal 


    myItemCollectionView = UICollectionView(frame: CGRectMake(5, 5, 300, 100), collectionViewLayout: layout) 
    myItemCollectionView.dataSource = self 
    myItemCollectionView.delegate = self 
    myItemCollectionView.registerClass(ItemCell.self, forCellWithReuseIdentifier: CELLID) 
    myItemCollectionView.backgroundColor = UIColor.darkGrayColor() 

    self.view.addSubview(myItemCollectionView) 
} 

Antwort

0

Die Methoden delegate/data source für die Sammlungsansicht wurden nicht in "itemsCollectionView" aufgerufen. Ich habe gerade den itemsCollectionView Anruf in ItemGroupCell für vorläufig und seinen Arbeits

ein View-Controller-Variable in hinzufügen ItemGroupCell

let itemVC : UIViewController = { 

    let itemCollectionView = itemsCollectionView() 
    return itemCollectionView 
}() 

ändern Sie die "cellForItemAtIndexPath" in Mainviewcontroller wie diese

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let groupCell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifierID, forIndexPath: indexPath) as! ItemGroupCell 

    //  if let groupName = groupMenu[indexPath.item].groupName { 
    //   groupCell.groupName.text = groupName 
    //  } 

    // Configure the cell 

    groupCell.Info = groupInfo[indexPath.item] 

    groupCell.addSubview(groupCell.itemVC.view) 
    groupCell.addConstraintsWithFormat("H:|-15-[v0]-15-|", views: groupCell.itemVC.view) 

    return groupCell 
} 

Ich hoffe, es funktioniert ...

+0

danke, du! . Ihr Kommentar ist ein sehr guter Hinweis für mich! Aber ich habe eine andere Frage ... Ihre Lösung ist ... unten ... ----------------- itemVC lassen: UIViewController = { lassen itemCollectionView = (itemsCollectionView) return itemCollectionView }() -------- und addSubview (grouitemVC.view) diese (Ihre) -Code ist die custome Zelle erscheinen. –

+0

Aber..my ..code ... ist nicht erschienen ... Zollzelle ... Lassen Sie itemView: UIView = {lassen Sie itemCollectionView = itemsCollectionView() Lassen Sie uico = itemCollectionView.view! zurück uico }() -------- und addSubView (iteView) Ich weiß nicht, warum die beiden Ergebnisse unterschiedlich sind. ist nicht gleich ?? –

+0

Was mein Verständnis ist Hinzufügen eines View-Controller zu einer Unteransicht mit "addsubview" ist keine empfohlene Methode, weil der Sub-Controller einige Delegate Methoden nicht aufrufen wird.Containeransichts-Controller sind eine gute Möglichkeit zum Implementieren von untergeordneten Ansichtscontrollern –

0

prüfen Nur zwei Dinge:

1 >> Wenn Sie nicht angewendet haben customCollectionViewCell dann auf Übernehmen.

2 >> Achten Sie auch auf WiederverwendungIdentifier dieser Prioritätszelle.

Nicht Standard verwenden. Noch irgendeine Frage frage mich hier.

+0

umm..ich verwende keinen Standardwert ... Hast du den GitHub gesehen? –

+0

Ja, ich verstehe. Es ist alles in Ordnung. Aber ich schlage vor, dass Sie einen kleinen Fehler in Ihrem Programm machen, der von Ihnen bearbeitet werden kann. Versuchen Sie es nur einmal, indem Sie die Standardzelle verwenden. – JAck

+0

Ja, versuchte Standardzelle ... aber ich weiß es nicht. Warum werden Sie Standard-Zelle versucht .. –