麦圈分页视图 0.8.3

麦圈分页视图 0.8.3

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最后发布2019年8月
SPM支持SPM

丁文超维护。




  • 丁文超

fspagerview

Languages
Platform Version Carthage compatible SPM compatible

SWIFT OBJECTIVE-C

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

功能

  • 无限滚动。
  • 自动滑动。
  • 横向纵向分页。
  • 完整自定义项目,包含预定义横幅风格的项目。
  • 完全自定义分页控件
  • 丰富的内置3D转换器。
  • 简单愉悦的API使用。
  • 支持jobjective-c

示例

示例1 - 横幅

横幅
9

自动滑动间隔

自动滑动的间隔时间。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 - 转换器

交叉淡入淡出
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.来定制您自己的转换器。

演示3页面控制

页面控制
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)
  • 使用 Interface Builder 开始使用
    1、简单地将 UIView 实例拖动到您的视图控制器,将 自定义类 更改为 FSPagerView。(或 FSPageControl
    2、将 dataSourcedelegate 属性链接到您的视图控制器中的 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)

告知代理视图页面已完成减速滚动动作。


  • 关注此仓库 star

  • 给我买杯咖啡。☕️

      |     |  


作者


文档