前提・実現したいこと
現在、映画の情報を取得するアプリを制作しています。
その際に、2つのUICollectionViewを1つのViewControllerの中にを表示させる方法を検討しています。
UICollectionViewDataSourceのメソッドの中で、switch文でCollectionViewを分けて管理したいのですが、うまく行かないことがあったので質問させてください。
発生している問題・エラーメッセージ
cellの設定の部分ではうまく情報が反映されているのですが、cellの数やサイズをswitch文で設定してもうまく条件分岐できていないのか同じ情報が反映されてしまいます。
該当のソースコード
swift:ViewController
1extension MovieViewController: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { 2 3 4 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 5 6 switch collectionView { 7 8 case castCollectionView: 9 return .init(width: castCollectionView.frame.width / 4, height: castCollectionView.frame.height) 10 11 case providerLogoCollectonView: 12 return .init(width: providerLogoCollectonView.frame.width / 3, height: providerLogoCollectonView.frame.height) 13 14 default: 15 return .init(width: 0, height: 0) 16 } 17 } 18 19 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 20 21 switch collectionView { 22 23 case castCollectionView: 24 return castData.count 25 26 27 case providerLogoCollectonView: 28 return providerData.count 29 30 default: 31 return 0 32 } 33 } 34 35 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 36 37 switch collectionView { 38 39 case castCollectionView: 40 let cCell = castCollectionView.dequeueReusableCell(withReuseIdentifier: castCellId, for: indexPath) as! CastCell 41 cCell.castItem = castData[indexPath.row] 42 return cCell 43 44 case providerLogoCollectonView: 45 let pCell = providerLogoCollectonView.dequeueReusableCell(withReuseIdentifier: providerCellId, for: indexPath) as! ProviderCell 46 pCell.providerItem = providerData[indexPath.row] 47 return pCell 48 49 default: 50 51 return UICollectionViewCell() 52 53 } 54 } 55 56 57 58}
試したこと
if文での条件分岐も試したのですが、うまく反映されませんでした。
cellForItemAtでのcellの設定はうまく反映してくれたので、同じようにnumberOfItemsInSectionで設定しても2つのCollectionviewで同じcell数になってしまいます。
実例
![
上の画像のように、cellの数とサイズがそれぞれで設定できていません。
switch文の制約が違うのでしょうか。それとも何か致命的な問題があるのでしょうか。
ご回答いただけたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。