MaterialPageControl
Swift 版本的 material-components-ios/PageControl,受 Material Design 规范中动画和布局的影响。
示例
安装
CocoaPods
PageViewController 可通过 CocoaPods 获得。要安装,请将以下代码行添加到 Podfile 中
pod "MaterialPageControl"
Swift 包管理器
要使用 Swift 包管理器 集成,请将以下内容添加到您的 Package.swift 中,作为依赖项
.package(url: "https://github.com/DeluxeAlonso/MaterialPageControl.git", .upToNextMajor(from: "1.0.0"))
使用方法
您可以通过代码或界面构建器来初始化 MaterialPageControl,并且必须始终设置其 numberOfPages 属性。
let pageControl = MaterialPageControl()
pageControl.pageIndicatorTintColor = .gray
pageControl.currentPageIndicatorTintColor = .black
pageControl.numberOfPages = 3
MaterialPageControl 设计用于与滚动视图配合使用。您必须实现三个滚动视图代理方法(-scrollViewDidScroll、-scrollViewDidEndDecelerating 和 -scrollViewDidEndScrollingAnimation)并将它们类似这样转发给页面控制器。
func scrollViewDidScroll(_ scrollView: UIScrollView) {
pageControl.scrollViewDidScroll(scrollView)
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
pageControl.scrollViewDidEndDecelerating(scrollView)
}
func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
pageControl.scrollViewDidEndScrollingAnimation(scrollView)
}
如果您想具有页面控制器的默认点击手势行为,您应该这样实现。
pageControl.addTarget(self, action: #selector(didChangePage(sender:)), for: .valueChanged)
@objc func didChangePage(sender: MaterialPageControl) {
var offset = collectionView.contentOffset
offset.x = CGFloat(sender.currentPage) * scrollView.bounds.size.width
scrollView.setContentOffset(offset, animated: true)
}
作者
Alonso Alvarez,[email protected]
许可证
MaterialPageControl 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。