課程筆記文集地址:Udemy課程:The Complete iOS 9 Developer Course - Build 18 Apps
Section 8 主要的內(nèi)容是克隆 Instagram:107 - 128課悯周。
1摇天、創(chuàng)建下拉刷新的方法:
創(chuàng)建下拉刷新的步驟等孵,如下:
// 創(chuàng)建刷新圖標(biāo)
let refresher = UIRefreshControl()
// 添加下拉刷新的時(shí)候要顯示的文案
refresher.attributedTitle = NSAttributedString(string: "下拉刷新")
// 這個(gè)是關(guān)鍵代碼治专,選擇下拉后要執(zhí)行的 action特咆,還有此次下拉刷新控制的事件的類型:改變值
refresher.addTarget(self, action: #selector(TableViewController.refresh), forControlEvents: UIControlEvents.ValueChanged)
// 把下拉刷新添加到界面上
self.tableView.addSubview(refresher)
2虚吟、下拉刷新的文檔:
從下圖中可以看到邀摆,一些基本的要求,用戶下拉的時(shí)候洁奈,會(huì)自動(dòng)觸發(fā) UIControlEvents.ValueChanged 事件间唉,還有,刷新結(jié)束的方法必須要調(diào)用利术。
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()
方法里,進(jìn)行數(shù)據(jù)的刷新印叁,向服務(wù)器請(qǐng)求更新數(shù)據(jù)被冒。然后更新完數(shù)據(jù),調(diào)用 endRefreshing()
轮蜕。
比如使用了 tableview昨悼,則往往會(huì)出現(xiàn)這樣:
self.tableView.reloadData()
self.refresher.endRefreshing()