利用UICollectionView 實現 頁面瀑布流效果
阿新 • • 發佈:2019-02-20
目前很多的app在頁面的當中添加了瀑布流的效果。這個效果可以使用UIScrollView 來實現,但是利用此控制元件雖然靈活性比較高,但是在瀑布流當中,需要使用大量的image,需要考慮到大量image 新增到UI上會耗費大量的記憶體。蘋果官方在IOS6.0 版本之後,添加了UICollectionView這個控制元件。此控制元件和UITableview 控制元件類似,繼承了UIScrollView類。
利用UICollectionView 來實現瀑布流效果,不需要考慮多張圖片新增的情況。點此下載。
UICollectionView 在使用的時候,最主要的是UICollectionViewLayout ,利用這個類,來控制collection view的 佈局和間隔等等。
- (NSArray*)layoutAttributesForElementsInRect:(CGRect)rect;
這個方法是返回在collectionview 上的所有cell以及每個section 的 header 和foot 的佈局
- (UICollectionViewLayoutAttributes*)layoutAttributesForItemAtIndexPath:( NSIndexPath*)indexPath;根據傳入的index
path 來獲取對應的cell 的rect 等。
- (CGSize)collectionViewContentSize;返回整個collectionview 的contentSize。
使用委託的方式,
- (CGSize)collectionViewLayout:(UICollectionView*)collectionView
SizeOfCellAtIndex:(NSIndexPath*)indexPath;返回每個cell 的size,在瀑布流中的cell 每個的尺寸都不同時,可以方便返回
- (CGSize)collectionViewLayout:(UICollectionView*)collectionView
SizeOfHeaderViewAtIndex:(NSIndexPath*)indexPath; 返回每個section 的header 的size