1. 程式人生 > >利用UICollectionView 實現 頁面瀑布流效果

利用UICollectionView 實現 頁面瀑布流效果

        目前很多的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