课程笔记文集地址:Udemy课程:The Complete iOS 9 Developer Course - Build 18 Apps
Section 8 主要的内容是克隆 Instagram:107 - 128课。
1、创建下拉刷新的方法:
创建下拉刷新的步骤,如下:
// 创建刷新图标
let refresher = UIRefreshControl()
// 添加下拉刷新的时候要显示的文案
refresher.attributedTitle = NSAttributedString(string: "下拉刷新")
// 这个是关键代码,选择下拉后要执行的 action,还有此次下拉刷新控制的事件的类型:改变值
refresher.addTarget(self, action: #selector(TableViewController.refresh), forControlEvents: UIControlEvents.ValueChanged)
// 把下拉刷新添加到界面上
self.tableView.addSubview(refresher)
2、下拉刷新的文档:
从下图中可以看到,一些基本的要求,用户下拉的时候,会自动触发 UIControlEvents.ValueChanged 事件,还有,刷新结束的方法必须要调用。
3、常见使用情形:
下拉刷新方法往往放到 viewDidLoad
方法里:
var refresher: UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
refresher = UIRefreshControl()
refresher.attributedTitle = NSAttributedString(string: "Pull to refresh")
refresher.addTarget(self, action: #selector(TableViewController.refresh), forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refresher)
refresh()
}
在 refresh()
方法里,进行数据的刷新,向服务器请求更新数据。然后更新完数据,调用 endRefreshing()
。
比如使用了 tableview,则往往会出现这样:
self.tableView.reloadData()
self.refresher.endRefreshing()