OLSDynamicHeaderViewController for iOS (v1.0)
这是一个易于集成的视图控制器,它允许 UIScrollView 或其广泛使用的子类(如 UITableView 和 UICollectionView)具有可以随滚动动画的头部视图。
这里是一个示例
安装
OLSDynamicHeaderViewController 通过 CocoaPods 提供。要安装它,只需将其添加到 Podfile 中。
pod "OLSDynamicHeaderViewController"
设置
在您的 ViewController 上
- 让您的
UIViewController
继承自辅助类之一OLSDynamicHeaderTableViewController
或OLSDynamicHeaderCollectionViewController
class MyViewController: OLSDynamicHeaderTableViewController {
// MARK - OLSDynamicHeaderViewControllerProtocol
override func headerViewInstance() -> OLSDynamicHeaderView {
...
}
// ... (View Controller lifecycle and logic)
- 在
headerViewInstance()
返回OLSDynamicHeaderView
子类的一个实例。这个类是一个基本的 UIView 子类,它符合将帮助您完成动画部分的协议。
现在...为你的头部内容
- 创建一个
OLSDynamicHeaderView
的子类,并实现该接口
class MyDynamicHeader: OLSDynamicHeaderView {
func maxHeight() -> CGFloat { ... }
func minHeight() -> CGFloat { ... }
func resize(withProgress progress: CGFloat) { ... }
func overflow(withPoints points: CGFloat) { ... }
}
maxHeight
返回此视图允许的最大高度。minHeight
返回此视图允许的最小高度。- 当用户滚动并且你的头部需要动画时,将调用
resize(withProgress)
。progress
从0到1,0为最小高度,1为最大高度。 - 当用户滚动超过最大高度时,将调用
overflow(withPoints)
。points
从0到N。
注意
- 该项目包含一个基本示例代码,您可以使用它作为将组件集成到应用程序中的指南。
- 项目提供用于tableView和collectionView的帮助类,上面的示例利用了这些类。但您可以进一步继承
OLSDynamicHeaderViewController
并从那里开始获得更多控制。 - 如果您有任何问题、改进、想法或只是评论,请查看下面的链接!
作者
Omar Hagopian,Antihero @OrangeLoops
联系方式
许可
OLSDynamicHeaderViewController处于MIT许可之下。有关更多信息,请参阅LICENSE文件!