我在Viewcontroller中有一个自定义的Collection视图,每当我的Collection View加载时,我的第一个单元格都是空的。如何删除这个空单元格。
//CollectionView functions
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return collectionData.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! collectionCell
let collectionData = self.collectionData[indexPath.row]
cell.NameLbl.text = collectionData["name"] as? String
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let Info: NSDictionary = self.collectionData[indexPath.item] as! NSDictionary
let vc = self.storyboard?.instantiateViewController(withIdentifier: "edit") as! editVC
self.navigationController?.pushViewController(vc, animated: false)
}
答案 0 :(得分:0)
取决于你应该处理隐藏第一个元素的情况,你可能想要实现两个选项:
1 - 如果可以从数据源(collectionData
数组)中删除第一个对象,那么您只需从中删除第一个元素:
在您的视图控制器(viewDidLoad()
)中,您可以实现:
override func viewDidLoad() {
.
.
.
collectionData.remove(at: 0)
.
.
.
}
2 - 如果您需要保留collectionData
而不删除第一个元素,但不应该在UI中显示,则需要实现{{ 1}}如下:
UICollectionViewDataSource
这应该导致在不编辑func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
// subtract 1
return collectionData.count - 1
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! collectionCell
// add 1 to indexPath.row
let collectionData = self.collectionData[indexPath.row + 1]
cell.NameLbl.text = collectionData["name"] as? String
return cell
}
数据源数组的情况下按预期显示集合视图。