一款基于矢量(使用贝塞尔路径)的(用于iOS滚动视图的)动画加载数据控件(下拉刷新)。
BezierRefreshControl 实现了在 iOS 滚动视图中绘制贝塞尔路径的动画方式,可用于作为加载数据的控件 - 例如在刷新表格视图(或集合视图)的内容时进行下拉刷新操作。开发人员可以在控件的初始化阶段提供自己的贝塞尔路径以进行动画。动画执行期间数据正在加载(例如从远程源/API 获取数据)。
BezierRefreshControl.swift
文件拖放到您的项目中。导入
import BezierRefreshControl
在您的类中创建一个属性
var refreshControl: BezierRefreshControl!
在您的 viewDidLoad()
方法中添加以下代码
// Init BezierRefreshControl
self.refreshControl = BezierRefreshControl(inScrollView: self.tableView, withPath: createSampleFlamePath(), bindsScrollViewDelegate: true)
// Set the delegate
self.refreshControl.delegate = self
注意,您需要将您的
UIBezierPath
实例作为初始化参数提供。
颜色
self.refreshControl.color = UIColor.red
描边线宽
self.refreshControl.lineWidth = 3.0
如果您注意到在初始化阶段有一个关于绑定滚动视图代理的布尔参数。在您需要在代码中实现滚动视图代理的情况下,需要进行以下两个步骤
bindsScrollViewDelegate
参数设置为 false
UIScrollViewDelegate
代理方法中,调用控制器的公开方法func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
self.refreshControl.scrollViewWillBeginDragging(scrollView)
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
self.refreshControl.scrollViewDidScroll(scrollView)
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
self.refreshControl.scrollViewDidEndDragging(scrollView, willDecelerate: decelerate)
}
我非常欣赏您对 BezierRefreshControl 的贡献,更多详情请查看 LICENSE
文件。
康斯坦丁诺斯·迪米特洛斯 | twitter | 电子邮件 | github | linkedin
在MIT许可下分发。更多信息请参见 LICENSE
文件。