OLSDynamicHeaderViewController 1.0.0

OLSDynamicHeaderViewController 1.0.0

Omar Hagopian 维护。



OLSDynamicHeaderViewController for iOS (v1.0)

这是一个易于集成的视图控制器,它允许 UIScrollView 或其广泛使用的子类(如 UITableView 和 UICollectionView)具有可以随滚动动画的头部视图。

这里是一个示例

安装

OLSDynamicHeaderViewController 通过 CocoaPods 提供。要安装它,只需将其添加到 Podfile 中。

pod "OLSDynamicHeaderViewController"

设置

在您的 ViewController 上

  • 让您的 UIViewController 继承自辅助类之一 OLSDynamicHeaderTableViewControllerOLSDynamicHeaderCollectionViewController
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文件!