XLPageViewController-开放且高度可定制的分页视图控制器
XLPageViewController是一个在GitHub上开源的项目,拥有372个星标和71个分支。它是一个分页视图控制器,采用UICollectionView + UIPageViewController方案,具有高性能、低功耗的...
标签:Github项目Objective-C UICollectionView UIPageViewController XLPageViewController 分页视图控制器XLPageViewController-开放且高度可定制的分页视图控制器
一、项目简介
XLPageViewController是一个在GitHub上开源的项目,拥有372个星标和71个分支。它是一个分页视图控制器,采用UICollectionView + UIPageViewController方案,具有高性能、低功耗的特点。
二、项目特点
1. 性能与内存管理
其高性能、低功耗,支持刷新并且内置非复用的缓存机制,从而节省内存。
2. 样式方面
默认配置样式丰富,可实现大部分主流App样式,像今日头条、腾讯新闻等App的样式都能实现。同时支持用户自定义标题样式,标题的显示位置(居左、居中、居右)、高度、宽度、文字位置(居上、居下)等都能自定义,还有标题颜色过渡、阴影动画(缩放或无缩放)、末端形状(圆角或直角)、阴影位置(居上或居中)等样式设置。另外,它还兼容全屏返回手势。
三、使用方式
1. 创建方法
首先要导入头文件#import “XLPageViewController.h”,然后遵守协议。创建外观配置类,config负责所有外观配置,defaultConfig方法设定了默认参数,使用时可按需配置。接着创建分页控制器,并将其添加为当前视图控制器的子视图控制器。
2. 协议相关
有XLPageViewControllerDelegate和XLPageViewControllerDataSrouce两个协议。XLPageViewControllerDelegate用于回调切换位置;XLPageViewControllerDataSrouce中的required方法包括根据index创建视图控制器、根据index返回对应的标题、返回分页数,还有可选的标题cell复用方法。
3. 自定义标题cell
要创建一个XLPageTitleCell的子类,注册cell并添加创建cell的方法,同时可以复写cell父类方法来配置标题cell是否被选中样式和动画。
4. 特殊情况处理
当pageViewController的子视图中存在可滚动的子view,例如UISlider、UIScrollView等,如果子view和pageViewController发生滚动冲突时,可设置子view的xl_letMeScrollFirst属性为true。当pageViewController和全屏返回手势一起使用时,需要将其它手势的delegate的类名添加到respondOtherGestureDelegateClassList属性中。
5. 注意事项
使用时需注意标题不要重复,标题是定位ViewController的唯一ID。
四、项目更新
项目一直在更新完善,解决了诸多问题,例如2019/07/29解决快速滑动导致显示错乱问题,2020/04/23解决设置selectedIndex后,代理方法可能不执行问题等。
五、项目总结
XLPageViewController是一个功能强大、高度可定制且不断完善的分页视图控制器。如果你有任何关于这个项目的想法或者使用经验,欢迎在下方留言讨论。
项目地址
数据统计
数据评估
本站链氪巴士提供的XLPageViewController-开放且高度可定制的分页视图控制器都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。