我正在尝试创建与下面的图片类似的视图。宽度是可变的。由于存在版权问题,我已将文本标记为黑色。
任何人都可以调查一下并放入一些代码,以便它可以在某个地方为我提供帮助。
我需要实现自定义集合视图布局吗?
请帮我。
最佳答案
这是对您的评论的回应,您需要在SGSStaggeredFlowLayout中添加3条额外的代码行
NSArray* arr = [super layoutAttributesForElementsInRect:rect];
// THIS CODE SEPARATES INTO ROWS
NSMutableArray* rows = [NSMutableArray array];
NSMutableArray* currentRow = nil;
NSInteger currentIndex = 0;
BOOL nextIsNewRow = YES;
for (UICollectionViewLayoutAttributes* atts in arr) {
if (nextIsNewRow) {
nextIsNewRow = NO;
if (currentRow) {
[rows addObject:currentRow];
}
currentRow = [NSMutableArray array];
}
if (arr.count > currentIndex+1) {
UICollectionViewLayoutAttributes* nextAtts = arr[currentIndex+1];
if (nextAtts.frame.origin.y > atts.frame.origin.y) {
nextIsNewRow = YES;
}
}
[currentRow addObject:atts];
currentIndex++;
}
if (![rows containsObject:currentRow]) {
[rows addObject:currentRow];
}
它像魅力一样工作:)