コレクションビューには最初のセクションのみが表示され、2番目のセクションは表示されません。
ここに代表者がいます
private func numberOfSectionsInCollectionView(collectionView: UICollectionView!) -> Int {
return 2
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
var returnValue = Int()
if section == 0 {
returnValue = 1
} else if section == 1 {
returnValue = self.section1DataSource.count
}
return returnValue
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
var cell = UICollectionViewCell()
let cellA:GroupPhoto = collectionView.dequeueReusableCell(withReuseIdentifier: "groupPhotoCard", for: indexPath) as! GroupPhoto
let cellB:AddFriendCell = collectionView.dequeueReusableCell(withReuseIdentifier: "addFriendCard", for: indexPath) as! AddFriendCell
let section = indexPath.section
if section == 0 {
cell = cellA
//end of section 0
} else if section == 1 {
cell = cellB
}
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
var returnValue = CGSize()
if indexPath.section == 0 {
returnValue = CGSize(width: collectionView.frame.size.width, height: collectionView.frame.size.height / 3.0 - 8)
} else if indexPath.section == 1 {
returnValue = CGSize(width: collectionView.frame.size.width / 2.9 - 8, height: collectionView.frame.size.height / 2.9 - 8)
}
return returnValue
}
最初のセクションのセルが2番目のセクションに割り当てられるように条件を交換するとき。正常に動作しますが、それでも最初のセクションのみが表示され、2番目のセクションは表示されません。
numberOfSections(in:)
の署名はSwift 3で変更されます。次のようになります。
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 2
}
In Swift 3、numberOfSectionsInCollectionViewはnumberOfSections(in:)に変更されます
これを回避するには、オートコンプリートを実装するためにICollectionViewDataSourceを追加する必要があります。