ios – 在UICollectionView中注册多个单元格(swift 3)

ios – 在UICollectionView中注册多个单元格(swift 3),第1张

概述对于UICollectionViews,是否可以有多个单元格类型? 例如: media_cellregular_cellad_cell 您是否只需要注册它们,或者您是否必须包含if语句并根据某个变量更改布局以实现此效果. 例如: if cell.ad == true {} 原因是,我想要一个略有不同大小的单元格来存在图像.我想重新调整单元格可以工作,但我没有在网上看到任何东西. 有什么 对于UICollectionVIEws,是否可以有多个单元格类型?

例如:

media_cellregular_cellad_cell

您是否只需要注册它们,或者您是否必须包含if语句并根据某个变量更改布局以实现此效果.

例如:

if cell.ad == true {}

原因是,我想要一个略有不同大小的单元格来存在图像.我想重新调整单元格可以工作,但我没有在网上看到任何东西.

有什么建议

解决方法 试试这个:
 1.注册两个(或更多)单元.
 2.为每个配置cellforItem.
3.为每个配置sizeforItem.
第一:

self.collectionVIEw.register(SmallCell.self,forCellWithReuseIDentifIEr: "smallCell")self.collectionVIEw.register(BigCell.self,forCellWithReuseIDentifIEr: "bigCell")

然后:

func collectionVIEw(_ collectionVIEw: UICollectionVIEw,cellForItemAt indexPath: IndexPath) -> UICollectionVIEwCell {     if dataSource[indexPath.item].hasImage {        let cell = collectionVIEw.dequeueReusableCell(withReuseIDentifIEr: “smallCell”,for: indexPath) as! SmallCell        let model = dataSource[indexPath.item]        cell.model = model        return cell      } else {        let cell = collectionVIEw.dequeueReusableCell(withReuseIDentifIEr: “bigCell”,for: indexPath) as! BigCell        let model = dataSource[indexPath.item]        cell.model = model        return cell       }   }func collectionVIEw(_ collectionVIEw: UICollectionVIEw,layout collectionVIEwLayout: UICollectionVIEwLayout,sizeforItemAt indexPath: IndexPath) -> CGSize {     if dataSource[indexPath.item].hasImage {        return CGSize(wIDth: collectionVIEw.frame.wIDth,height: cellHeight+100)     } else {           return CGSize(wIDth: collectionVIEw.frame.wIDth,height: cellHeight)         }       }
总结

以上是内存溢出为你收集整理的ios – 在UICollectionView中注册多个单元格(swift 3)全部内容,希望文章能够帮你解决ios – 在UICollectionView中注册多个单元格(swift 3)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1052237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存