2017-05-17 6 views
0

私のuicollectionviewで複数のセルをデキューするのに問題があります。 誰かが登録からデキューまでステップごとにプロセスを説明できますか?私は1つのコレクションビューで2つ以上のuicollectionviewセルを読み込むことに関するオンラインを見つけることができません。この場合も、coreadataの変数に基づいて、1つのコレクションビューに複数のタイプのセルをロードするためのものです。uicollectionviewセルをデキューするのに問題が発生しました。(swift 3)

これまで私がこれまで持っていたことは次のとおりです。私は、細胞

collectionView?.register(ShareCell.self, forCellWithReuseIdentifier: cellId) 
    collectionView?.register(ShareCellMedia.self, forCellWithReuseIdentifier: mediaCellId) 

を登録するのはここ

あなたはプロトタイプ静的セルにセルを登録する必要を使用していないか、あなたがしている場合している場合はここに私のセルがインデックスパス

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

    let friend = fetchedResultsController.object(at: indexPath) as! Friend 
    if (friend.lastMessage?.hasImage)! == true { 
     let mediaCell = collectionView.dequeueReusableCell(withReuseIdentifier: mediaCellId, for: indexPath) as! 
     ShareCellMedia 
     mediaCell.cell = friend.lastMessage 
     return mediaCell 

    }else{ 


     let regularCell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! 
     ShareCell 
     regularCell.cell = friend.lastMessage 
     return regularCell 
    } 

} 
+2

投稿したコードは問題ありません。あなたは起こるとは思わなかったことは何ですか?それらを使用する前にcellIdとmediaCellIdが設定されていることを確認してください。セルを登録するとき、その時点でcollectionViewがnilでないことを確認してください。 –

答えて

0

でアイテムのためだですxibのセルを使用すると、このように登録することができます。

 collectionView.register(UINib(nibName: "name here",bundle:nil), forCellWithReuseIdentifier: "identifier") 

識別子

+0

私の悪い英語のために残念 –

0

xibでセルを作成していますか?

ので が、あなたはこの

UINib *cellNib = [UINib nibWithNibName:@"yourCellNib" bundle:nil]; 
[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"TheNibCellIdentifier"]; 

ようのviewDidLoadでペン先のセルを登録する必要があればまた、あなたが使用することを確認する必要があり、それぞれのReuseIdentifierセルロードするとき:

yourCellNib*cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TheNibCellIdentifier" forIndexPath:indexPath]; 
関連する問題