fspagerview

Languages
Platform Version Carthage compatible SPM compatible

SWIFT OBJECTIVE-C

FSPagerView 是一个优雅的屏幕滑动库,主要使用 UICollectionView 实现。 它非常适合制作横幅广告、产品展示、欢迎/引导页、屏幕/ViewController 滑动器。

特性

演示

Demo1 - 横幅广告

横幅广告
9

automaticSlidingInterval

自动滑动的时间间隔。 0 表示禁用自动滑动。 默认值为 0。

例如:

pagerView.automaticSlidingInterval = 3.0

isInfinite

一个布尔值,指示 Pager View 是否具有无限数量的 Item。 默认值为 false。

例如:

pagerView.isInfinite = true

decelerationDistance

一个无符号整数值,决定了 Pager View 的分页距离,它指示了减速期间经过的 Item 数量。 当此属性的值为 FSPagerView.automaticDistance 时,实际的“距离”会根据 Pager View 的滚动速度自动计算。 默认值为 1。

例如:

pagerView.decelerationDistance = 2

itemSize

Pager View 的 Item 大小。 当此属性的值为 FSPagerView.automaticSize 时,Item 会填充 Pager View 的整个可见区域。 默认值为 FSPagerView.automaticSize。

例如:

pagerView.itemSize = CGSize(width: 200, height: 180)

interitemSpacing

Pager View 中 Item 之间的间距。 默认值为 0。

例如:

pagerView.interitemSpacing = 10

Demo2 - 变换器

交叉淡化
1
pagerView.transformer = FSPagerViewTransformer(type: .crossFading)

缩小
2
pagerView.transformer = FSPagerViewTransformer(type: .zoomOut)

深度
3
pagerView.transformer = FSPagerViewTransformer(type: .depth)

线性
4
pagerView.transformer = FSPagerViewTransformer(type: .linear)

重叠
5
pagerView.transformer = FSPagerViewTransformer(type: .overlap)

摩天轮
6
pagerView.transformer = FSPagerViewTransformer(type: .ferrisWheel)

倒置摩天轮
7
pagerView.transformer = FSPagerViewTransformer(type: .invertedFerrisWheel)

封面流
8
pagerView.transformer = FSPagerViewTransformer(type: .coverFlow)

立方体
9
pagerView.transformer = FSPagerViewTransformer(type: .cubic)

通过继承 FSPagerViewTransformer 来定制你自己的变换器。

Demo3 页面控制

页面控制
10

|

numberOfPages

页面控制器的页面指示器数量。 默认值为 0。

例如:

pageControl.numberOfPages = 5

currentPage

当前页,由页面控制器突出显示。 默认值为 0。

例如:

pageControl.currentPage = 1

contentHorizontalAlignment

控件边界内内容的水平对齐方式。 默认值为居中。

例如:

pageControl.contentHorizontalAlignment = .right

setStrokeColor:forState

为指定状态设置页面指示器使用的描边颜色。(selected/normal)。

例如:

pageControl.setStrokeColor(.green, for: .normal)
pageControl.setStrokeColor(.yellow, for: .selected)

setFillColor:forState

为指定状态设置页面指示器使用的填充颜色。(selected/normal)。

例如:

pageControl.setFillColor(.gray, for: .normal)
pageControl.setFillColor(.white, for: .selected)

setImage:forState

为指定状态设置页面指示器使用的图像。(selected/normal)。

例如:

pageControl.setImage(UIImage(named:"image1"), for: .normal)
pageControl.setImage(UIImage(named:"image2"), for: .selected)

setPath:forState

为指定状态设置页面指示器使用的路径。(selected/normal)。

例如:

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)

安装

手动

  1. 下载 源代码。
  2. 解压 zip 文件,简单地将 Sources 文件夹拖到你的项目中。
  3. 确保 如果需要复制项目 已选中。

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)
@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

询问委托在跟踪期间是否应突出显示 Item。


func pagerView(_ pagerView: FSPagerView, didHighlightItemAt index: Int)

告诉委托指定索引处的 Item 已被突出显示。


func pagerView(_ pagerView: FSPagerView, shouldSelectItemAt index: Int) -> Bool

询问委托是否应选择指定的 Item。


func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int)

告诉委托指定索引处的 Item 已被选中。


func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int)

告诉委托指定的 Cell 即将在 Pager View 中显示。


func pagerView(_ pagerView: FSPagerView, didEndDisplaying cell: FSPagerViewCell, forItemAt index: Int)

告诉委托指定的 Cell 已从 Pager View 中移除。


func pagerViewWillBeginDragging(_ pagerView: FSPagerView)

告诉委托 Pager View 即将开始滚动内容。


func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int)

告诉委托用户完成滚动内容。


func pagerViewDidScroll(_ pagerView: FSPagerView)

告诉委托用户在接收器中滚动内容视图。


func pagerViewDidEndScrollAnimation(_ pagerView: FSPagerView)

告诉委托 Pager View 中的滚动动画已完成。


func pagerViewDidEndDecelerating(_ pagerView: FSPagerView)

告诉委托 Pager View 已经结束减速滚动运动。


支持这个仓库



作者


文档