UICollectionView學習總結

1⃣️
     UICollectionView與UITableView的 區別:佈局
     UICollectionView與UITableView的 共同點:循環利用
      —> UITableView繼承UISCrollView
      注意:
         —> UICollectionView 初始化必需要傳入佈局    
               UICollectionViewLayout 
               UICollectionViewFlowLayout 流水佈局:九宮格佈局
        —> UICollectionViewCell必需要註冊
        —> 必須自定義cell
 
   方法抽取的原則:高聚合,低耦合.
    —> 對於項目功能的模塊,實行抽取方法
    —> 對於設置屬性的模塊,可使用以下方式⬇️
 
               
 
2⃣️
     當系統的方法無法知足咱們的需求的時候,咱們就能夠 自自定義類,重寫方法,達到一些效果.
      思路:
          照片瀏覽佈局:1.(流水佈局)在拖動的時候,在原來基礎上從新計算下佈局
                 2.在原來功能上再添加功能,須要自定義流水佈局
 
     🚀 自定義UICollectionView佈局.瞭解5個方法
     ⭐️- (void)prepareLayout;
  何時調用:一開始佈局就會調用,UICollectionView刷新的時候也會調用
  做用:計算全部的cell佈局,條件:cell佈局固定
 
     ⭐️- (nullable NSArray<__kindof UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect;
做用:返回每一個cell佈局,
        給定一個區域,就返回這個區域內全部cell佈局
        容許一次性返回全部cell佈局
分析:
     UICollectionViewLayoutAttributes:描述cell的佈局
         每個cell對應UICollectionViewLayoutAttributes
         只要拿到UICollectionViewLayoutAttributes,拿到cell
 
     ⭐️- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds; 
 Invalidate:刷新
  是否容許在拖動的時候刷新佈局
  謹慎使用,YES:只要一滾動就會佈局
 
     ⭐️- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity;
  何時調用:手動拖動UICollectionView,當手指離開的時候,就會調用
  做用:返回UICollectionView最終的偏移量
 proposedContentOffset:最終的偏移量
 
     ⭐️- (CGSize)collectionViewContentSize;
 
—>個人總結:
UICollectionView與UIScrollView比較:
UICollectionView建立的同時必需要初始化佈局
這裏選擇UICollectionViewFlowLayout流水佈局
 ↘️所須要的兩個對象
     UICollectionView *collectionView;
     UICollectionViewFlowLayout *layout;
 ↘️在layout中,設置佈局的一些屬性 
        itemSize:collectionView中的每一個模型尺寸
        scrollDirection:滾動方向
        sectionInset:設置額外滾動區域
        ......
 
建立collectionView對象並同時傳入佈局layout,
 ↘️設置collectionView屬性
     設置collectionView的相關屬性:位置,背景色,.....
 ↘️注意
     UICollectionView和UIScrollView的不一樣之處就體如今佈局,
     UICollectionView初始化時須要佈局且UICollectionView內的控件徹底根據佈局的設置來顯示,不須要去設置滾動區域.
     UIScrollView須要去根據控件的多少來設置內容滾動區域contentSize.
 
           👉UITableView繼承自UIScrollView
相關文章
相關標籤/搜索