質問: "cellId" UICollectionView1作成 UICollectionView2作成 func { UICollectionView1をaddsubView,constraintsなど UICollectionView2をaddsubView,constraintsなど クラスUICollectionViewCell1をレジスター クラスUICollectionViewCell2をレジスター } //下記コード がここに入ります } ・クラスUICollectionViewCell1 { func { addsubView,constraintsなど } ・クラスUICollectionViewCell2 { func { addsubView,constraintsなど } } --- ``` ```ここに言語を入力 //下記コード //UICollectionViewCell "hoge"内 ... func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 30 } //スイッチ func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { switch indexPath.item { //UICollectionViewCell2の場合 case 1: return collectionView.dequeueReusableCell(withReuseIdentifier: "cellBId", for: indexPath) as! CellB default: return collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) as! Cell } } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { return CGSize(width: 200, height: frame.height - 10) } ... ``` --- UICollectionViewCell2はdequeueのみ行いたいので、その他(numberOfItemsInSectionやsizeForItemAt indexPath)は行いたくありません。 現在、エラー 'could not dequeue a view of kind: UICollectionElementKindCell with identifier cellBId - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' が発生します。 正しいswitch文で、それぞれdequeueすることが可能でしたらご指摘いただきたいです。 よろしくお願いします。 //追記 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/3016c52de5244c0a66ff16c15acbe504.png) CollectionView2(グリーン)の上にCollectionViewCell2(オレンジ)が乗っています。 numberOfItemsInSectionのreturnは1です。 CollectionViewCell2内にはUIImageView(目が光っているやつ)のみ作成。 CollectionView1(レッド)の上にCollectionViewCell1(イエロー)が乗っています。 numberOfItemsInSectionのreturnは3です。 CollectionViewCell1内にはUIImageView(ガンディー)のみ作成。 画像の通り(目が光っているやつ)が後ろに回り込んでしまったりと、混ざってしまいます。
回答: いまいち状況がつかめていないのですが、 「新たにUICollectionView2を作り、そこにまた新たなUICollectionViewCell2をregisterする」 ということはcellBIdとcellIdが登録されているUICollectionViewがそれぞれ違っているので、 cellForItemAtのcollectionViewはUICollectionView1またはUICollectionView2となり、同じcollectionViewの中ではswitchできないのではないでしょうか?