链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

WSLWaterFlowLayout:多功能的瀑布流布局控件

WSLWaterFlowLayout是基于UICollectionViewLayout封装的控件。它支持竖向瀑布流(等宽不等高且支持头脚视图)、水平瀑布流(等高不等宽不支持头脚视图)、竖向瀑布流(等高不等宽且支持头脚视图)和栅格布局瀑布流这4种样式。项目实现主要靠重写父类布局属性...

访问官网 →

WSLWaterFlowLayout:一个多功能的瀑布流布局控件

一、项目简介

WSLWaterFlowLayout是一个在继承于UICollectionViewLayout基础上封装的控件。它能够支持多种瀑布流布局样式,包括竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽不支持头脚视图)、竖向瀑布流(item等高不等宽、支持头脚视图)以及栅格布局瀑布流这4种样式。该项目的简书地址为https://www.jianshu.com/p/9fafd89c97ad,不过此库年久失修,不建议直接使用,但可以用于学习。

二、项目实现

主要是重写父类的几个涉及布局属性的方法,在对应的布局属性方法中根据需求自定义视图布局属性信息。例如通过重写-(void)prepareLayout来初始化生成每个视图的布局信息;通过-(NSArray)layoutAttributesForElementsInRect:(CGRect)rect决定一段区域所有cell和头尾视图的布局属性等。

三、项目用法

要注意遵循WSLWaterFlowLayoutDelegate协议,代理方法和TableView、collectionView的代理方法用法相似。在WSLWaterFlowLayout.h中有明确的属性方法和代理方法定义。例如有用于定义样式的枚举WSLFlowLayoutStyle,包括竖向瀑布流、水平瀑布流等不同类型。代理方法中有如-(CGSize)waterFlowLayout:(WSLWaterFlowLayout)waterFlowLayout sizeForItemAtIndexPath:(NSIndexPath)indexPath用于返回item的大小,并且根据不同的瀑布流样式有不同的要求。初始化仅需三行代码,只需设置代理和样式,像item的大小、头脚视图的大小、行列数以及间距等都可以在对应样式的代理方法中自定义。

四、项目总结

WSLWaterFlowLayout为开发者提供了多样化的瀑布流布局解决方案,虽然目前库年久失修不建议直接使用,但其中的实现思路和用法值得学习研究。欢迎各位粉丝在下方留言,分享你们对这个项目的看法或者使用类似布局控件的经验。

项目地址

GitHub链接直达