UITableViewでUIRefreshControlを使い、PullToRefreshを実現する
最終更新日:2016-02-21
UITableViewでPullToRefreshする例です。UIRefreshControlオブジェクトを生成し、addSubViewするだけなので、ソース全体を示したほうが早いですね。
class RefreshTableViewController : UIViewController, UITableViewDataSource {
@IBOutlet var tableView : UITableView?
override func viewDidLoad() {
super.viewDidLoad()
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: "startLoading:", forControlEvents: UIControlEvents.ValueChanged)
tableView?.addSubview(refreshControl)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//MARK: TableView Data source
// TableViewに関する項目なので省略
//MARK: RefreshControl
func startLoading(refreshControl : UIRefreshControl) {
// 別スレッドで2秒処理したことにしてみる
NSThread.detachNewThreadSelector("wait:", toTarget: self, withObject: refreshControl)
}
func wait(refreshControl : UIRefreshControl) {
// 2 sec
sleep(2)
dispatch_async(dispatch_get_main_queue()) {
refreshControl.endRefreshing()
}
}
}