SWIFT | OBJCETIVE-C |
---|
FSPagerView 是一个使用 UICollectionView 主要实现的优雅的屏幕滑动库。它对于制作宣传横幅、产品展示、欢迎/引导页面、屏幕/视图控制器滑块等非常有帮助。
特性
- 无限 滚动。
- 自动 滑动。
- 水平 和 垂直 分页。
- 可完全自定义项目,预定义了横幅风格的项。
- 可完全自定义 分页控件。
- 丰富的内置 3D 转换器。
- 简单 且 愉悦 的 API 使用。
- 支持 SWIFT 和 OBJCETIVE-C。
演示
演示1 - 横幅
横幅 |
---|
![]() |
automaticSlidingInterval
自动滑动的间隔时间。0 表示禁用自动滑动。默认为 0。
例如。
pagerView.automaticSlidingInterval = 3.0
isInfinite
一个布尔值,表示分页视图是否有无限数量项。默认为false。
例如。
pagerView.isInfinite = true
itemSize
分页视图的项大小。.zero表示总是填充分页视图的边界。默认是.zero。
例如。
pagerView.itemSize = CGSize(width: 200, height: 180)
interitemSpacing
分页视图中各项之间使用的间距。默认是0。
例如。
pagerView.interitemSpacing = 10
Demo2 - Transformers
交叉淡入 |
---|
![]() |
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。
自定义自己的转换器。
Demo3 Page Control
页面控制 |
---|
![]() |
|
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)
- 通过界面建构器入门
1、直接将UIView实例拖入您的视图控制器,将Custom Class
更改到FSPagerView
。(或者FSPageControl
)
2、将的 dataSource
和delegate
属性链接到您的视图控制器。
3、注册一个单元格类。
@IBOutlet weak var pagerView: FSPagerView! {
didSet {
self.pagerView.register(FSPagerViewCell.self, forCellWithReuseIdentifier: "cell")
}
}
2. 实现FSPagerViewDataSource
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
}
3. 实现FSPagerViewDelegate
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)
告知委托轮播视图已结束减速滚动运动。