CollectionView自定义布局

在iOS上添加UITableView,在UICollectionView上添加UITableView。 在UICollectionView中使用网格,在UI中使用UI。 UIKitViewKit的UICollectionViewFlowLayout布局,UICollectionViewLayout的自定义视图。

Apple的自定义布局自定义布局流的布局。 (UICollectionViewFlowLayout中的对象列表)

在UICollectionView中添加UICollectionViewLayout在UICollectionViewLayout中。 그래서适用于iOS的Collection View编程指南핵심API와属性와정정해보았다。

UICollectionViewLayoutAttributes

  • CollectionViewLayout和UICollectionViewLayoutAttributes一起显示。 (框架,中心,位置,zIndex등)
  • 본적인용하는게。。。。있다。 (레이아웃반복적으로반복적으것은이많은이비용。)

필수적으로불리는API및属性

  • prepareLayout
  • conentSize属性
  • layoutAttributesForElementsInRect

prepareLayout

  • 초기계산을회를기회를제공
  • 在UICollectionViewLayoutAttributes中获取结果。 (캐싱)
  • 이부분에서로캐싱하는식으성능상좋음。 (매번属性호출시있음있음있음있음)

contentSize

  • 스크롤할지지정할있음。
  • flowLayout下载스한쪽방향으이아님。

layoutAttributesForElementsInRect

  • prepareLayout음에음에음에호출되는함수
  • 반환(반환사이즈)
  • 필요함사각형과교차되는지를반환이반환이필요함。

layoutAttributesForItemAtIndexPath

  • 요청함기주로개별레이아웃객체에기주로적으。
  • 例如)삭및제시에시에이션정보

initialLayoutAttributesForAppearingItem

  • cell이보여질때기초지정해줄속성을。
  • 이통해서插入애니메이션을수있음。

finalLayoutAttributesForDisappearingItemAtIndexPath

  • cell사라질때지정해줄수。
  • 删除애니메이션을션을수。

invalidateLayout

  • 레이아웃을기초(업데이트할기수제공)
  • 이는레이아웃에지이지데이터를다시정설아님。 (reloadData와다름)

targetContentOffsetForProposedContentOffset:withScrollingVelocity:

  • 함마막막막막함정함。
  • 크롤시스통해서지지정해있음있음있음

CustomLayout설정방법

  1. 故事板에서collectionView의布局类를변경
  2. collectionView.collectionViewLayout =커스텀레이아웃

请参见UICollectionViewLayout和API。 下载CustomLayout应用程序。

[이미지출처] https://developer.apple.com/library/archive/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/CreatingCustomLayouts/CreatingCustomLayouts.html#//apple_ref/doc/uid/TP40012334-CH5-SW1