我遇到了一个困境,在我的 CollectionView
中,每个 collectionviewcell
都显示不同的数据,并且具有不同的边框/背景样式。例如,代码片段
let monsters: Monsters!
cell.graphViewIBO.isHidden = true
cell.monsblIBO.isHidden = true
cell.powersBgIBO.isHidden = true
guard indexPath.row != 0 else {
cell.indexOne(monsters)
return cell
}
guard indexPath.row != 1 else {
cell.indexTwo(monsters)
return cell
}
guard indexPath.row != 2 else {
cell.indexThree(monsters)
return cell
}
我觉得这可能是不好的做法,并且不确定我是否应该继续这样做,或者只是使用 scrollview
并独立设置其中每个 uiview
的样式。
因为从右边开始,我的 Storyboard在一个 collectionviewcell
中包含多个对象,我需要根据所呈现的索引来隐藏/显示这些对象。我可以继续使用 CollectionView 来实现此目的吗?这种方法的正确方法是什么?
最佳答案
我认为您想要使用的是 switch
语句。您的代码如下所示:
let monsters: Monsters!
cell.graphViewIBO.isHidden = true
cell.monsblIBO.isHidden = true
cell.powersBgIBO.isHidden = true
switch indexPath.row {
case 0:
cell.indexOne(monsters)
case 1:
cell.indexTwo(monsters)
case 2:
cell.indexThree(monsters)
default: break
}
return cell
如果您经常更改单元格,则可以创建 UICollectionViewCell
的不同子类,具体创建取决于哪个索引。如果每种类型的单元格只使用一次,那么 UIScrollView 会更好。但是,如果您多次使用相同类型的单元格(例如仅更改一些文本),则应该使用 UICollectionView。
关于swift - 使用防护/if 语句来设置多个 CollectionvViewCell 样式的良好做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41653982/