StickyHeaderTabController 0.2.2

StickyHeaderTabController 0.2.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2017年10月
SwiftSwift 版本3.2
SPM支持 SPM

Benjamin Chrobot维护。







受 Twitter 个人资料启发的带粘性标题和英雄效果的标签页内容控制器。

Demo Gif

示例

要运行示例项目,首先从克隆的仓库中运行 pod install

需求

安装

StickyHeaderTabController 可通过 CocoaPods 获取。要安装
它,只需将以下行添加到您的 Podfile 中

pod 'StickyHeaderTabController'

使用

要开始,只需将 StickyHeaderTabController 子类化并添加一个标题!有关更多详细信息,请参阅示例项目

class ExampleTabController: StickyHeaderTabController {

    private let exampleHeader = ExampleStickyHeaderView()
    private let exampleHero = ExampleStickyHeroView()
    private let exampleTabBar = ExampleTabBar(frame: .zero) // optional customization

    override func viewDidLoad() {
        super.viewDidLoad()

        delegate = self

        stickyHeader = exampleHeader
        hero = exampleHero
        tabBar = exampleTabBar
        tabs = [StatesTabViewController(), ColorsTabViewController()]
    }

    fileprivate func updateAvatarFrame() {
        // Recalculate the avatar's frame based on scroll position
    }

    fileprivate func updateNameLabel() {
        // Recalculate name label's position based on scroll position
    }

}

extension ExampleTabController: StickyHeaderTabControllerDelegate {
    func stickyHeaderTabControllerDidScrollVertically(_ controller: StickyHeaderTabController) {
        // Perform any frame updates based on changes to contentOffset
        updateAvatarFrame()
        updateNameLabel()
    }
}

StickyHeaderView

  • 宽度由 StickyHeaderTabController 设置
  • 高度应由您设置
    • 为了使垂直反弹拉伸工作,优先级不得大于等于 700。
    • 小心子视图的压缩阻力,尤其是图像视图。

StickyHeroView

  • 宽度由 StickyHeaderTabController 设置
  • 高度应由您设置
    • 不得有任何优先级低于 250。

作者

Benjamin Chrobot, [email protected]

许可证

StickyHeaderTabController 采用 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。