122课:如何实现下拉刷新

课程笔记文集地址: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 事件,还有,刷新结束的方法必须要调用。

122课:如何实现下拉刷新_第1张图片

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()

你可能感兴趣的:(122课:如何实现下拉刷新)