HoverConversion 0.3.1

HoverConversion 0.3.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2016年9月
SPM支持 SPM

Taiki Suzuki 维护。



ManiacDev.com referred.
https://maniacdev.com/2016/09/hoverconversion-a-swift-ui-component-for-navigating-between-multiple-table-views

HoverConversion 实现了使用 UITableView 的垂直分页。当 UIViewController 在 UITableView 的 contentOffset 的顶部或底部时,将进行分页。

功能

  • [x] 使用 UITableView 的垂直分页
  • [x] 无缝过渡
  • [x] 使用 navigationView 滑动手势过渡
  • [x] 高亮显示与 UIViewController 相关的选定的单元格
  • [x] 支持 Swift2.3
  • [x] 支持 Swift3

要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install

安装

HoverConversion 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod "HoverConversion"

使用

如果从 Cocoapods 安装,您必须编写 import HoverConversion

Storyboard 或 Xib

UINavigationController 的自定义类设置为 HCNavigationController。此外,将模块设置为 HoverConversion。然后,将 HCRootViewController 设置为 navigationController 的第一个 viewController

代码

HCNavigationController 设置为 self.window.rootViewController。将 HCRootViewController 设置为 navigationController 的第一个 viewController

HCPagingViewController

如果您想显示垂直内容,请使用 HCPagingViewController

let vc = HCPagingViewController(indexPath: indexPath)
vc.dataSource = self
navigationController?.pushViewController(vc, animated: true)

HCContentViewController

HCPagingViewController 中的内容包括 HCContentViewController
使用此代理方法返回 HCContentViewController(或子类)。

extension ViewController: HCPagingViewControllerDataSource {
    func pagingViewController(viewController: HCPagingViewController, viewControllerFor indexPath: NSIndexPath) -> HCContentViewController? {
        guard 0 <= indexPath.row && indexPath.row < twitterManager.users.count else { return nil }
        let vc = UserTimelineViewController()
        vc.user = twitterManager.users[indexPath.row]
        return vc
    }
}

HCNextHeaderView

使用此代理方法返回 HCNextHeaderView(或子类)。

extension ViewController: HCPagingViewControllerDataSource {
    func pagingViewController(viewController: HCPagingViewController, nextHeaderViewFor indexPath: NSIndexPath) -> HCNextHeaderView? {
        guard 0 <= indexPath.row && indexPath.row < twitterManager.users.count else { return nil }
        let view = NextHeaderView()
        view.user = twitterManager.users[indexPath.row]
        return view
    }
}

停止过渡

如果您想从服务器加载数据并停止过渡,您可以使用 HCContentViewController 中的 canPaging

//Stop transitioning to previous ViewController
canPaging[.prev] = false //Default true

//Stop transitioning to next ViewController
canPaging[.next] = false //Default true

要求

  • 支持 Xcode 7.3 或更高版本
  • 支持 iOS 8.0 或更高版本
  • MisterFusion - AutoLayout 的 Swift DSL

特别感谢

以下 OSS 被用于示例项目!

作者

marty-suzuki,[email protected]

许可证

HoverConversion 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。