SWIFT | OBJECTIVE-C |
---|
麦圈分页视图是一个优雅的屏幕滑动库,主要使用UICollectionView实现。对于制作横幅、产品展示、欢迎/引导页面、屏幕/视图控制器滑动等功能非常有帮助。
功能
- 无限滚动。
- 自动滑动。
- 横向和纵向分页。
- 完整自定义项目,包含预定义横幅风格的项目。
- 完全自定义分页控件。
- 丰富的内置3D转换器。
- 简单且愉悦的API使用。
- 支持
j 和objective-c 。
示例
示例1 - 横幅
横幅 |
---|
![]() |
自动滑动间隔
自动滑动的间隔时间。0 表示禁用自动滑动。默认是 0。
例如:
pagerView.automaticSlidingInterval = 3.0
isInfinite
一个布尔值,指示分页视图是否有无限项。默认为 false。
例如:
pagerView.isInfinite = true
decelerationDistance
一个无符号整数,确定分页视图的翻页距离,表示加速度时的通过项数。当此属性的值为 FSPagerView.automaticDistance 时,实际的 '距离' 会根据分页视图的滚动速度自动计算。默认是 1。
例如:
pagerView.decelerationDistance = 2
itemSize
分页视图的项大小。当此属性的值为 FSPagerView.automaticSize 时,项将填充分页视图的可视区域。默认是 FSPagerView.automaticSize。
例如:
pagerView.itemSize = CGSize(width: 200, height: 180)
interitemSpacing
分页视图中项之间的间距。默认是 0。
例如:
pagerView.interitemSpacing = 10
示例2 - 转换器
交叉淡入淡出 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .crossfading)
缩放退出 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .zoomout)
深度 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .depth)
线性 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .linear)
重叠 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .overlap)
摩天轮 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .ferrisWheel)
倒置摩天轮 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .invertedFerrisWheel)
专辑封面流动效果 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .coverFlow)
立方体 |
---|
![]() |
pagerView.transformer = FSPagerViewTransformer(type: .cubic)
通过继承
FSPagerViewTransformer.
来定制您自己的转换器。
演示3页面控制
页面控制 |
---|
![]() |
|
numberOfPages
页面控制的页码指示器数量。默认为0。
例如:
pageControl.numberOfPages = 5
currentPage
当前页面,由页面控制突出显示。默认为0。
例如:
pageControl.currentPage = 1
contentHorizontalAlignment
控制内内容的水平对齐方式。默认为居中。
例如:
pageControl.contentHorizontalAlignment = .right
setStrokeColor:forState
为页面指示器设置特定状态下使用的描边颜色。(选中/正常)。
例如:
pageControl.setStrokeColor(.green, for: .normal)
pageControl.setStrokeColor(.yellow, for: .selected)
setFillColor:forState
为页面指示器设置特定状态下使用的填充颜色。(选中/正常)。
例如:
pageControl.setFillColor(.gray, for: .normal)
pageControl.setFillColor(.white, for: .selected)
setImage:forState
为指定状态(选中/正常)设置页指示器的图片。
例如:
pageControl.setImage(UIImage(named:"image1"), for: .normal)
pageControl.setImage(UIImage(named:"image2"), for: .selected)
setPath:forState
为指定状态(选中/正常)设置页指示器的路径。
例如:
pageControl.setPath(UIBezierPath(rect: CGRect(x: 0, y: 0, width: 8, height: 8)), for: .normal)
pageControl.setPath(UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 8, height: 8)), for: .selected)
安装
- 手动安装
- Cocoapods
- Carthage
手动安装
- 下载源代码。
- 解压zip文件,只需将文件夹 源代码 拖入您项目中。
- 确保勾选 如果需要则复制项目。
Cocoapods
use_frameworks!
target '<Your Target Name>' do
pod 'FSPagerView'
end
Carthage
github "WenchaoD/FSPagerView"
1. 开始使用
- 使用代码开始使用
// Create a pager view
let pagerView = FSPagerView(frame: frame1)
pagerView.dataSource = self
pagerView.delegate = self
pagerView.register(FSPagerViewCell.self, forCellWithReuseIdentifier: "cell")
self.view.addSubview(pagerView)
// Create a page control
let pageControl = FSPageControl(frame: frame2)
self.view.addSubview(pageControl)
- 使用 Interface Builder 开始使用
1、简单地将 UIView 实例拖动到您的视图控制器,将自定义类
更改为FSPagerView
。(或FSPageControl
)
2、将dataSource
和delegate
属性链接到您的视图控制器中的 FSPagerView。
注册一个单元格类。
@IBOutlet weak var pagerView: FSPagerView! {
didSet {
self.pagerView.register(FSPagerViewCell.self, forCellWithReuseIdentifier: "cell")
}
}
public func numberOfItems(in pagerView: FSPagerView) -> Int {
return numberOfItems
}
public func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell {
let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "cell", at: index)
cell.imageView?.image = ...
cell.textLabel?.text = ...
return cell
}
func pagerView(_ pagerView: FSPagerView, shouldHighlightItemAt index: Int) -> Bool
询问代理项在跟踪期间是否应该高亮显示。
func pagerView(_ pagerView: FSPagerView, didHighlightItemAt index: Int)
告知代理已高亮显示指定索引的项。
func pagerView(_ pagerView: FSPagerView, shouldSelectItemAt index: Int) -> Bool
询问代理是否应选择指定的项。
func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int)
告知代理已选择指定索引的项。
func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int)
告知代理指定的单元格即将在视图页面中显示。
func pagerView(_ pagerView: FSPagerView, didEndDisplaying cell: FSPagerViewCell, forItemAt index: Int)
告知代理指定的单元格已从视图页面中移除。
func pagerViewWillBeginDragging(_ pagerView: FSPagerView)
告知代理视图页面即将开始滚动内容。
func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int)
告知代理用户完成滚动内容。
func pagerViewDidScroll(_ pagerView: FSPagerView)
告知代理用户在接收器内部滚动内容视图。
func pagerViewDidEndScrollAnimation(_ pagerView: FSPagerView)
告知代理视图页面中的滚动动画完成。
func pagerViewDidEndDecelerating(_ pagerView: FSPagerView)
告知代理视图页面已完成减速滚动动作。