這段時(shí)間突然想到一個(gè)很久之前用到的知識(shí)-瀑布流,本來(lái)想用一個(gè)簡(jiǎn)單的方法,發(fā)現(xiàn)自己走入了歧途,最終只能狠下心來(lái)重寫(xiě)UICollectionViewFlowLayout.下面我將用兩種方法實(shí)現(xiàn)瀑布流,以及會(huì)介紹第一種實(shí)現(xiàn)的bug.

第一種

效果圖如下所示:

這種實(shí)現(xiàn)方法的思路:

1)首先調(diào)用隨機(jī)函數(shù),產(chǎn)生隨機(jī)高度,并把它保存到數(shù)組中

復(fù)制代碼
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    CGFloat cellW = 100;
    CGFloat cellH = 100 + (arc4random() % 80);
    [self.heightArrayM addObject:@(cellH)]; return CGSizeMake(cellW, cellH);
    
}
復(fù)制代碼

2)在設(shè)置cell的frame的地方,通過(guò)取余,取整確定cell的高度,并

網(wǎng)友評(píng)論