KMPageMenu
CocoaPods 安装
CocoaPods 是 Objective-C 的依赖管理器,它自动并简化了使用第三方库的过程。您可以使用以下命令来安装它
$ gem install cocoapods
Podfile
要使用 CocoaPods 将 KMPageMenu 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
在您的 Podfile 中
pod 'KMPageMenu'
然后,运行以下命令
$ pod install
需求
此库需要 iOS 8.0+
架构
KMPageMenu
KMPageMenuEnum
KMPagingViewController
用法
//首先把 菜单 和 分页视图控制器 添加到视图上
let menu = KMPageMenu(frame: CGRect(x: 0, y: 40, width: width, height: 44), titles: titles)
m.style.titleFont = UIFont.systemFont(ofSize: 14)
view.addSubview(menu)
let page = KMPagingViewController(viewControllers: viewControllers)
page.view.frame = CGRect(x: 0, y: menu.frame.maxY, width: width, height: view.frame.height - menu.frame.maxY)
self.addChildViewController(page)
page.didMove(toParentViewController: self)
self.view.addSubview(page.view)
// 菜单下标改变的回调
menu.valueChange = { [weak self] index in
self?.page.pagingToViewController(at: index)
}
// KMPageMenu 控件继承于 UIControl 所以也可以用监听 valueChanged 的方式
menu.addTarget(self, action: #selector(menuValueChange(sender:)), for: .valueChanged)
// 分页控制器切换完成的回调
page.didFinishPagingCallBack = { [weak self] (currentViewController, currentIndex)in
self?.menu.setSelectIndex(index: currentIndex, animated: true)
}
// KMPagingViewController 同时也提供了代理的回调
// KMPagingViewControllerDelegate
page.delegate = self
func pagingController(_ pagingController: KMPagingViewController, didFinish currentViewController: UIViewController, currentIndex: Int) {
print("selectIndex == \(currentIndex)")
}
动图
作者
hkm5558, [email protected]
许可
KMPageMenu遵循MIT许可协议。更多信息请参阅LICENSE文件。