ios - 返回故事板单元格大小或忽略 sizeForItemAt 委托方法上的集合视图
问题描述
我在另一篇文章中看到了这个问题,但是答案并不令人满意。
我有一个视图控制器,里面有几个集合视图,我用故事板完美地调整了它们的单元格。但是,有一个特别需要手动调整大小的集合视图,因此我包含了该方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
我想要完成的是覆盖或忽略所有集合视图的此方法,但最后一个。
我尝试使用另一篇文章中建议的以下代码,但它在运行时崩溃:
if collectionView != interestsCollectionView {
return self.collectionView(collectionView, layout: UICollectionViewLayout(), sizeForItemAt: IndexPath(item: 0, section: 0))
}
关于我如何做到这一点的任何想法?
解决方案
我猜这个
return self.collectionView(collectionView, layout: UICollectionViewLayout(), sizeForItemAt: IndexPath(item: 0, section: 0))
将多次递归调用相同的方法,导致循环导致崩溃,此外,如果您实现了此方法,sizeForItemAt
那么您还必须为其他集合返回一个值,因为if
这里if collectionView != interestsCollectionView
可能永远不会从编译器逻辑中命中,所以您可能会
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
if collectionView == collectionView1 {
return CGSize(width:<#w#>,height:<#h#>)
}
else if collectionView == collectionView2 {
return CGSize(width:<#w#>,height:<#h#>)
}
else { } // etc
}
推荐阅读
- tfs - TFS 2017 (v15) 如何配置发布环境和特定构建代理之间的关联
- image - 硬代码降价图像
- php - 如何从 Codeigniter 中的控制器传递模型中的数组数据
- javascript - 当 contenteditable 中有多行时,替换光标前的单词
- django - 从 sqlite 中的测试到 postgres 主键以不同的 pk 开始
- applescript - 删除动态文件夹中的 JPG
- python - 如何使用 Bokeh 在绘图上显示各种悬停标识符?
- azure - Azure 函数扇出/扇入函数是否总是比仅运行单个函数线程具有更好的性能?
- r - 叠加信息ggplot
- yii2 - Yii2 - 将值传递给下拉列表中的 Where 子句