我应该继承啥 UICollectionViewLayout 或 UICollectionViewFlowLayout
Posted
技术标签:
【中文标题】我应该继承啥 UICollectionViewLayout 或 UICollectionViewFlowLayout【英文标题】:What should I subclass UICollectionViewLayout or UICollectionViewFlowLayout我应该继承什么 UICollectionViewLayout 或 UICollectionViewFlowLayout 【发布时间】:2015-02-03 18:28:33 【问题描述】:我的布局草图如下:-
上图,固定布局结构如下
-> First Row 有第 1 项,占据了集合视图的所有宽度。
->第二行有项目编号。 2 和 3 并平均分享宽度。
->从第三行开始,我们必须使用默认大小。
这里的 item1、item2-item3 和所有其余的项目分别有 3 种不同的设计。
collectionview 有 1 个部分,这里的数据源是简单的 nsarray。
所以我的问题是我应该使用什么?任何建议都会有所帮助,我是 UICollectionView 的新手,我发现它有点难以理解。
【问题讨论】:
【参考方案1】:我认为您可以将 UICollectionViewFlowLayout 与具有两种不同单元格种类的集合视图一起使用。不需要子类。如果您希望布局在横向模式下发生变化,这可能会变得很麻烦。
第一种单元格类型用于项目 1、2 和 3。通过实现 collectionView:sizeForItemAtIndexPath:
方法,您将获得不同的布局。只需确保索引 0(项目 1)是全角,索引 1、2(项目 2,3)是半角。
然后您可以为其他所有内容实现另一种单元格。这些项目也将是全宽的。
在cellForRowAtIndexPath
中,您需要检查 indexPath 的 item 属性以查看您是哪个索引。如果 > 2,则使用第二种单元格类型。
【讨论】:
我对 iPhone 和 iPad 有不同的布局,这就是为什么我必须对它进行子类化。 根据您的 iPad 布局,您可以创建两个特定于设备的类来实现 collectionView 和 collectionViewLayout 委托方法。如果您的 iPad 布局不适合流式布局,那么是的,子类化是必要的。以上是关于我应该继承啥 UICollectionViewLayout 或 UICollectionViewFlowLayout的主要内容,如果未能解决你的问题,请参考以下文章