0%

UICollectionView

记得还在公司的时候,实现了一个课表和sticker section header的 UICollectionView,现在回想起来,一片虚无哈,因为没有整理和总结。所有的整理都要补上啦。

当然,UICollectionView 最厉害的武器就是自己实现一个 UICollectionViewLayout,相当强大。

认识 UICollectionView

UICollectionView

UICollectionViewLayout

UICollectionViewCompositionalLayout

iOS 13之后可以使用的

之前很疑惑 UICollectionViewCompositionalLayout 是怎么实现 orthogonal scrolling 的,在 inspector 里看了一下以为是苹果用私有 API 实现的。之前很疑惑 UICollectionViewCompositionalLayout 是怎么实现 orthogonal scrolling 的,在 inspector 里看了一下以为是苹果用私有 API 实现的。

今天有需求就去研究了一下社区版 IBPCollectionViewCompositionalLayout 是怎么实现的,看完之后简直是震撼教育,没想到 UICollectionViewLayout 还能这么去玩…

我觉得它的处理太简单粗暴了,没有沿用 UIKit 的 preferredLayoutAttributesFitting,MagazineLayout 写的就比较正式一点…

问题

This code is great but set up your collection view in viewDidLayoutSubviews not in viewDidLoad see discussion

How to create UICollectionViewCell programmatically
This code is great but set up your collection view in viewDidLayoutSubviews not in viewDidLoad see discussion here:

UICollectionViewFlowLayout cell 排列的方向

今天蠢了才发现,UICollectionViewFlowLayout 的 scrollDirection 设置会导致 cell 布局方向的不同:

  • vertical,cell 的方向是先自上而下,然后自左到右
  • horizontal,cell 的方向是自左到右,然后再自上而下

参考

Understanding UICollection Flow Layout
IBPCollectionViewCompositionalLayout
MagazineLayout