JXPageControl
(JXPageControl 支持 multiple动画转换,内容布局转换和 Xib 布局)
- 开发环境:Xcode 7
- 运行条件:iOS(8.0+)
- 开源框架:GitHub 地址
- 中文介绍[中文介绍]
(如有任何问题,请留言,欢迎一起学习,欢迎 start)
安装
要安装,只需将以下代码添加到您的 Podfile
platform :ios, '8.0'
target 'TargetName' do
pod 'JXPageControl'
end
UI 效果
JXPageControlChameleon | JXPageControlExchange | JXPageControlFill |
---|---|---|
![]() |
![]() |
![]() |
JXPageControlJump | JXPageControlScale |
---|---|
![]() |
![]() |
框架集
- 公共框架公共类文件
- 跳跃 - 跳跃动画效果类文件
- 变换 - 过渡动画类文件
JXPageControl 介绍 [ JXPageControl 介绍 ]
JXPageControl 兼容 Swift 和 Objective-c
- JXPageControlBase - 所有的 pageControl 的基础类
- JXPageControlType - 所有的 pageControl 协议,它为开发者提供了一系列自定义的 API
JXPageControlType - provides - API
- numberOfPages ---> 指示器的数量。
- currentPage ---> 当前指示器页面编号。
- progress ---> 当前指示器页面编号进程。
- hidesForSinglePage ---> 当只有一个指示器时是否隐藏。
- inactiveColor ---> 不活跃指示器颜色
- activeColor ---> 活跃指示器颜色
- inactiveSize ---> 不活跃指示器大小
- activeSize ---> 活跃指示器大小
- indicatorSize ---> 所有指示器大小
- columnSpacing ---> 指示器之间的水平距离
- contentAlignment ---> 内容布局位置(注意:该属性易于使用!!!)
- contentMode ---> 内容布局位置,支持在 Xib 中进行变换,实时查看位置变化(注意:该属性非常有用!!!)
- isInactiveHollow ---> 不活跃指示器是否为空心模式
- isActiveHollow ---> 活跃指示器是否为空心模式
- reload() ---> 刷新数据/UI
注意
JXPageControl 也为非 JXPageControlType 提供了一些 API。您可以在使用的具体类中查看
JXPageControl 使用
示例 1
- 请使用(xib, storyboard进行属性和布局设置的!!!)
- 请注意,模块应选择JXPageControl,否则它将不会显示,调用将报告错误。
- 可以在视图中设置ContentMode以改变内容位置
示例 2
- 请用纯代码编写
import JXPageControl
class ChamelonVC: UIViewController {
lazy var codePageControl: JXPageControlJump = {
let pageControl = JXPageControlJump(frame: CGRect(x: 0,
y: 0,
width: UIScreen.main.bounds.width,
height: 30))
pageControl.numberOfPages = 4
// JXPageControlType: default property
// pageControl.currentPage = 0
// pageControl.progress = 0.0
// pageControl.hidesForSinglePage = false
// pageControl.inactiveColor = UIColor.white.withAlphaComponent(0.5)
// pageControl.activeColor = UIColor.white
// pageControl.inactiveSize = CGSize(width: 10, height: 10)
// pageControl.activeSize = CGSize(width: 10, height: 10)
// pageControl.inactiveSize = CGSize(width: 10, height: 10)
// pageControl.columnSpacing = 10
// pageControl.contentAlignment = JXPageControlAlignment(.center,
// .center)
// pageControl.contentMode = .center
// pageControl.isInactiveHollow = false
// pageControl.isActiveHollow = false
// JXPageControlJump: default "custom property"
pageControl.isAnimation = true
pageControl.isFlexible = true
return pageControl
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(codePageControl)
}
}
extension ChamelonVC: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let progress = scrollView.contentOffset.x / scrollView.bounds.width
let currentPage = Int(round(progress))
// Mode one
codePageControl.progress = progress
// Mode two
// codePageControl.currentPagev = currentPage
}
}
示例 2 及其后续...
import JXPageControl
...
演示地址
作者
Code-TanJX, [email protected]
许可协议
JXPageControl基于MIT许可协议提供。更多信息请参阅LICENSE文件。