13.2.4 UICollectionViewFlowlayout
UICollectionView与UITableView有一个巨大的差异是:UICollectionView可以定义自己的Layout规则(如图13.2.6所示),Storyboard默认选择了UICollectionViewFlowLayout,这也是开发者用得比较多的UICollectViewLayout。
图13.2.6 Attributes Inspector中的Layout选项
在Storyboard中点击“Collection View Flow Layout”,如图13.2.7所示。
图13.2.7 Collection View Flow Layout
在Attributes Inspector和Size Inspector中,可以看到这个Flow Layout的配置,如图13.2.8和13.2.9所示:
图13.2.8 Flow Layout的滚动方向Scroll Direction
图13.2.9 Flow Layout的布局配置
从这些配置可以看出,当前UICollectionView是垂直滚动,每个单元的大小是宽50、高50,并且单元和单元之间有10的间距,行和行之间也有10的间距。这也就解释了之前模拟器中的两个小红方块的布局是从哪里来的了。我们可以在这里修改这些配置值以达到预期布局的效果。
如果UICollectionView需要动态设置item大小,比如一个用于展示照片集合的UICollectionView,每张图片需要根据长宽比进行展示,在此类场景下需要UICollectionView的委托实例实现UICollection ViewDelegateFlowLayout协议,它可以提供和UICollectionViewFlowLayout相同的布局,并且可以根据每个section或者item的位置进行更多的自定义配置。