自訂UICollectionView布局-入門,uicollectionview布局

來源:互聯網
上載者:User

自訂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:後續會上傳代碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.