ios - 我应该继承 UICollectionViewLayout 或 UICollectionViewFlowLayout 什么

标签 ios objective-c uicollectionview uicollectionviewcell uicollectionviewlayout

我的布局草图如下:-

Layout Sketch for iPhone

上图,固定布局结构如下

-> 第一行有项目编号 1 并占据 Collection View 的所有宽度。

->第二行有项目编号。 2 和 3 并平均共享宽度。

->从第三行开始,我们必须使用默认大小。

这里的 item1, item2-item3 和所有其他的 item 分别有 3 种不同的设计。

collectionview 有 1 个部分,这里的数据源是简单的 nsarray。

所以我的问题是我应该使用什么?任何建议都会有所帮助,我是 UICollectionView 的新手,我发现它有点难以理解。

最佳答案

我认为您可以将 UICollectionViewFlowLayout 与具有两种不同 Cell Kind 的 Collection View 一起使用。不需要子类。如果您希望布局在横向模式下发生变化,这可能会变得棘手。

第一个单元格类型用于项目 1、2 和 3。您将通过实现 collectionView:sizeForItemAtIndexPath: 方法进行不同的布局。只需确保索引 0(项目 1)为全角,索引 1、2(项目 2,3)为半角。

然后您可以为其他一切实现另一种单元格类型。这些项目也将是全宽的。

cellForRowAtIndexPath 中,您需要检查 indexPath 的项目属性以查看您是哪个索引。如果 > 2,则使用第二种细胞类型。

关于ios - 我应该继承 UICollectionViewLayout 或 UICollectionViewFlowLayout 什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306154/

相关文章:

iOS Swift4 如何检查字符串是否不为零且不为空?

ios - 为什么我在 Objective C 中获取 NSString 的值,例如 0xb000000000000033

objective-c - CoreData 序列化的 NSDate 转换回真实日期

ios - 如何正确设置 UICollectionViewCell 边距?

ios - 如何使用 Alamofire、Swift 4 为 UICollectionView 获取 JSON 数据

ios - 更新未选中的 CollectionView 单元格?

ios - 如何在 swift 中使用加速度计和重力检测苹果 watch 的位置?

ios - 如何在 iOS 中不指定 HTTP 或 HTTPS 的情况下打开 URL?

ios - 崩溃 CGDataProviderCreateWithCopyOfData : vm_copy failed: status 1

iphone - 在 iPhone 的 OpenGL ES 中请求深度缓冲区