Pull to Refresh UIViewController in iOS

如果你强制添加一个UIRefreshControl到一个UIViewController,你会得到一个错误。

UIRefreshControl 只能由一个 UITableViewController 管理。

所以,这里有一个诀窍

Code

  1. 启动一个表视图,在您的 UIViewController
1
2
let refreshControl = UIRefreshControl()
var tableView = UITableView()
  1. add refreshControl to tableView, not view
1
2
3
4
5
6
tableView.frame = view.frame

refreshControl.addTarget(self, action: Selector("refreshView:"), forControlEvents: .ValueChanged)
tableView.addSubview(refreshControl) // here it is

self.view.addSubview(tableView)

3 refreshView function

1
2
3
4
5
6
func refreshView(refreshControl: UIRefreshControl) {
refreshControl.attributedTitle = NSAttributedString(string: "Refresh")
refreshControl.attributedTitle = NSAttributedString(string:"Last updated on" + NSDate().description)

refreshControl.endRefreshing()
}

如果你像我一样喜欢使用 Storyboard 的话

  1. Storyboard -> UITableViewController -> enable Refreshing

  2. Then you can Ctrl drag just like UIButton