我正在尝试创建与下面的图片类似的视图。宽度是可变的。由于存在版权问题,我已将文本标记为黑色。

任何人都可以调查一下并放入一些代码,以便它可以在某个地方为我提供帮助。

我需要实现自定义集合视图布局吗?

请帮我。

最佳答案

这是对您的评论的回应,您需要在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];
}


它像魅力一样工作:)

07-26 09:05