测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年3月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由周汉轩(Geno)维护。
UIKit为UITableView提供了UITableViewController,同时还有UICollectionViewController为UICollectionView。
那么为什么不为UIStackView提供UIStackViewController呢?
此框架的3个关键组件是 AutoScrollView 类,StackViewContainer 协议,以及 StackViewItem 协议。
AutoScrollView 继承了UIView并在观察键盘和第一个响应者后添加了自动滚动功能。
StackViewContainer 设置了创建功能齐全的UIStackView包装器的需求,并提供了各种扩展以在自动滚动视图和栈视图之间保持内部管理。
例如,包含了一个实现协议的类,该协议提供了栈视图的自滚动、分隔符定制、背景颜色属性等功能。
StackViewItem 提供了一个统一的接口,使StackViewContainer能够将视图和视图控制器添加/删除,并跟踪已添加的项。
此外,还有一个符合 StackViewItemSeparator 协议的UIView子类 BaseSeparatorView,在 BaseStackViewController 类中被用作默认分隔符。
Cocoapods
// Podfile
pod 'GZStackView', '~> 1.0'
// Run
pod install
可以使用多种方式利用此框架。
你可以直接抓住BaseStackViewController,初始化一个实例,或者从它那里派生出一个子类,只要它足够好,能够满足你的需求, magic 就会发生。
包含一个名为“Example”的独立项目,演示了初始化BaseStackViewController实例并将其作为子控制器添加的方法。
然而,我 强烈建议 你创建一个符合StackViewContainer协议的自己的视图控制器类。
BaseStackViewController就是一个非常好的例子,它注入了一堆伟大的功能,而无需定义任何方法。
本项目灵感来源于seedco/StackViewController。概念是优秀的,但貌似对于Geno来说实现过于复杂,所以Geno最终自己制作了。
该项目采用MIT许可协议。有关详细信息,请参阅LICENSE.md。