FSPagerView_HJM0.7.3

FSPagerView_HJM 0.7.3

Yan 维护。




  • Wenchao Ding

fspagerview

Languages
Platform Version Carthage compatible SPM compatible

SWIFT OBJCETIVE-C

FSPagerView 是一个使用 UICollectionView 主要实现的优雅的屏幕滑动库。它对于制作宣传横幅、产品展示、欢迎/引导页面、屏幕/视图控制器滑块等非常有帮助。

特性

  • 无限 滚动。
  • 自动 滑动。
  • 水平垂直 分页。
  • 可完全自定义项目,预定义了横幅风格的项。
  • 可完全自定义 分页控件
  • 丰富的内置 3D 转换器。
  • 简单愉悦 的 API 使用。
  • 支持 SWIFTOBJCETIVE-C

演示

演示1 - 横幅

横幅
9

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

交叉淡入
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 Page Control

页面控制
10

|

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

手动

  1. 下载源代码。
  2. 解压zip文件,简单地将文件夹拖到您的项目中。
  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)
  • 通过界面建构器入门
    1、直接将UIView实例拖入您的视图控制器,将Custom Class更改到FSPagerView。(或者FSPageControl
    2、将dataSourcedelegate属性链接到您的视图控制器。
    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)

告知委托轮播视图已结束减速滚动运动。


支持这个仓库

  • Star 此仓库 star

  • 请我喝杯咖啡。☕️

      |     |  


作者


文档