ManiacDev.com referred.
https://maniacdev.com/2016/09/hoverconversion-a-swift-ui-component-for-navigating-between-multiple-table-views
HoverConversion 实现了使用 UITableView 的垂直分页。当 UIViewController 在 UITableView 的 contentOffset 的顶部或底部时,将进行分页。
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
。
HoverConversion 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "HoverConversion"
如果从 Cocoapods 安装,您必须编写 import HoverConversion
。
将 UINavigationController
的自定义类设置为 HCNavigationController
。此外,将模块设置为 HoverConversion
。然后,将 HCRootViewController
设置为 navigationController
的第一个 viewController
。
将 HCNavigationController
设置为 self.window.rootViewController
。将 HCRootViewController
设置为 navigationController
的第一个 viewController
。
如果您想显示垂直内容,请使用 HCPagingViewController
。
let vc = HCPagingViewController(indexPath: indexPath)
vc.dataSource = self
navigationController?.pushViewController(vc, animated: true)
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
(或子类)。
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
以下 OSS 被用于示例项目!
marty-suzuki,[email protected]
HoverConversion 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。