自訂UICollectionView布局-入門,uicollectionview布局
自訂UICollectionView布局-入門0.應用情境:
項目中經常會用到各種各樣的cell,有時自訂cell已經無法滿足產品的需求,我們可以選擇複雜並且開發難度大的開發方式解決問題,當然也可以選擇簡單但是有技巧的解決方案,其中自訂UICollectionView布局就是一種很好的方式,這節就探討如何使用自訂UICollectionView布局做出漂亮的介面。
1.繼承方案
- 1> 繼承UICollectionViewLayout
- 2> 繼承UICollectionViewFlowLayout
2.可能需要重寫的方法
1> prepareLayout
- 一般在這裡設定一些初始化參數,執行初始化操作
- 必須要調用[super prepareLayout];
2> layoutAttributesForElementsInRect:
- 返回的數組中裝著UICollectionViewLayoutAttributes對象
- 返回collectionView上面所有元素(比如cell)的布局屬性:這個方法決定了cell怎麼排布
- 每個cell都有自己對應的布局屬性:UICollectionViewLayoutAttributes
3> shouldInvalidateLayoutForBoundsChange:
- 當uicollectionView的bounds發生改變時,是否要重新整理布局
- 一旦重新重新整理布局,就會重新按順序調用1>、2>兩個方法
4> targetContentOffsetForProposedContentOffset:withScrollingVelocity:
- 這個方法的傳回值,決定了collectionView最終的位移量(最終的停留位置)
- proposedContentOffset參數:collectionView本應該的位移量
- velocity參數:collectionView的滾動速率
5> layoutAttributesForItemAtIndexPath:
- 如果繼承了UICollectionViewLayout,最好實現這個方法
- 作用是:返回indexPath位置cell的布局屬性
PS:後續會上傳代碼。