子类化 UICollectionViewFlowLayout

Posted

技术标签:

【中文标题】子类化 UICollectionViewFlowLayout【英文标题】:subclassing UICollectionViewFlowLayout 【发布时间】:2013-08-20 17:38:48 【问题描述】:

我正在创建自己的流程布局,但在获取正确的collectionViewContentSize 时遇到问题,我的数据是一个数组数组,每个数组有 5 个数组有多个项目。

这是正确的numberOfItemsInSection:0 吗?还是我需要检查所有数组以找到具有更多项目的数组,然后使用该部分上的项目计算 xSize?

-(CGSize)collectionViewContentSize 

NSInteger xSize = [self.collectionView numberOfItemsInSection:0] * (itemWidth + space); // "space" is for spacing between cells.
NSInteger ySize = [self.collectionView numberOfSections] * (itemHeight + space);

NSLog(@"size %f, %f", xSize, ySize);
return CGSizeMake(xSize, ySize);

谢谢。

【问题讨论】:

【参考方案1】:

任何想学习如何做到这一点的人,我从Bryan Hensen 找到了这个很棒的教程

【讨论】:

【参考方案2】:

你已经设置了两个轴。通常,您只需要设置一个轴(滚动轴),因为会为您设置非滚动方向的屏幕边缘(或 collectionView 的边缘)。除此之外,是的,您必须遍历每个数组才能获得总高度。

【讨论】:

谢谢,对于 - (UICollectionViewLayoutAttributes )layoutAttributesForItemAtIndexPath:(NSIndexPath *)path 和 -(NSArray)layoutAttributesForElementsInRect:(CGRect)rect,我是否也必须这样做。遍历每个部分... 这些通常用于修改特定部分(单个单元格或矩形内的所有单元格)而不是整个 collectionView。 Apple 文档涵盖了非常好。请参阅“理解核心布局过程”developer.apple.com/library/ios/documentation/WindowsViews/…

以上是关于子类化 UICollectionViewFlowLayout的主要内容,如果未能解决你的问题,请参考以下文章

CAsyncSocket 没有子类化?

子类化导航控制器有啥用? [关闭]

麻烦子类化 SCNScene

UIViewController 的 Swift 子类化子类

子类化 UIAlertController

子类化 UItableViewCell 选择