iOS下拉刷新Demo示例

iOS 里的下拉刷新功能,用过的人都知道,虽然 UIRefreshControl 自带的够用,但样式真有点太朴素了。如果你也觉得视觉体验不够出彩,那可以试试类似 SDRefreshView 这样的库,挺灵活的,动画做得也顺滑。

系统原生的 UIRefreshControl 最大优点就是轻便,几行代码就能拉起来,比如你在 UITableView 上加个刷新,只要这样:

let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(refreshData), for: .valueChanged)
tableView.addSubview(refreshControl)

但要是你想搞点有趣的动效,或者想自定义一下下拉的动画,就可以用第三方库来帮忙。像 SDRefreshView,就支持自定义头部动画、回弹、还有各种 scrollView 的支持,做起来挺方便。

大致流程也不复杂,先用 CocoaPods 加进项目,初始化、绑定刷新回调、记得刷新完调用 endRefreshing()。例如:

let refreshView = SDRefreshView(frame: CGRect(x: 0, y: 0, width: tableView.bounds.width, height: 60))
refreshView.addTarget(self, action: #selector(refreshData), for: .touchUpInside)
tableView.addSubview(refreshView)

你在 refreshData 里写加载逻辑,跑完后别忘了 refreshView.endRefreshing(),不然刷新动画就不会停。整体来说,这种方式更适合想做点风格化或者有品牌感的 UI。

如果你做的是资讯类、社交类、或列表频繁刷新的 App,用上这种自定义刷新体验会蛮加分的。要是不想折腾,也可以用官方控件,图个省事。

想深入了解更多类似用法,可以看看这些:

zip
RefreshView.zip 预估大小:17个文件
folder
RefreshView 文件夹
file
blueArrow@2x.png 1KB
file
RefreshView.h 2KB
file
.DS_Store 6KB
file
RefreshView.xib 15KB
file
blueArrow.png 1KB
folder
.svn 文件夹
folder
props 文件夹
folder
prop-base 文件夹
file
blueArrow@2x.png.svn-base 79B
file
RefreshView.m.svn-base 60B
file
blueArrow.png.svn-base 79B
file
RefreshView.xib.svn-base 60B
file
RefreshView.h.svn-base 60B
folder
tmp 文件夹
folder
props 文件夹
folder
prop-base 文件夹
folder
text-base 文件夹
folder
text-base 文件夹
file
blueArrow@2x.png.svn-base 1KB
file
RefreshView.m.svn-base 5KB
file
blueArrow.png.svn-base 1KB
file
RefreshView.xib.svn-base 15KB
file
RefreshView.h.svn-base 2KB
file
entries 1KB
file
RefreshView.m 5KB
zip 文件大小:31.08KB