Swift 3 - CollectionView 选择不可见
Posted
技术标签:
【中文标题】Swift 3 - CollectionView 选择不可见【英文标题】:Swift 3 - CollectionView select not visible 【发布时间】:2017-10-11 13:35:31 【问题描述】:每次我尝试选择一个不可见的单元格时,都会出现异常:
let cell = collectionView.cellForItem(at: indexPath) as! CustomCell
这就是为什么我决定先滚动到它,让它变得可见,然后选择它:
collectionView.scrollToItem(at: indexPath, at: [], animated: true)
let cell = collectionView.cellForItem(at: indexPath) as! CustomCell
但我仍然得到:
fatal error: unexpectedly found nil while unwrapping an Optional value
对于这一行:
let cell = collectionView.cellForItem(at: indexPath) as! CustomCell
有人可以帮我解决这个问题吗?
谢谢和问候!
【问题讨论】:
既然cellForItem
被定义为对不可见的单元格返回nil,我不得不问,你为什么要选择一个? (我怀疑滚动问题是在事件循环运行之前 UI 不会更新,因此单元格没有机会变得可见......但我不确定。)
为什么要首先选择一个不可见的单元格?
我正在实现预选,而必须预选的单元格不可见...所以?
尝试将单元格方法而不是单元格方法出列
究竟是什么意思?
【参考方案1】:
我们在 UICollectionViewDelegate 中做了 select 方法。
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
//here you can access the cell
guard let cell = collectionView.cellForItem(at: indexPath) as?
CustomCell else return
//write your code here
【讨论】:
以上是关于Swift 3 - CollectionView 选择不可见的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 - CollectionView 数据源未返回有效单元格
Swift 3.0:自定义CollectionView标题按钮单击
SWIFT 3:将不同的声音文件数组匹配到 CollectionView 中的每个部分
Swift 3:在 CollectionView 中选择时放大图像