我想在我的UITableView
中下拉以刷新UITableViewController
。
这是我的代码,但不起作用:
class MyTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
initComponents()
loadData()
}
func refresh(sender: AnyObject) {
loadData()
}
func initComponents() {
self.refreshControl = UIRefreshControl()
self.refreshControl?.addTarget(self, action: #selector(MyTableViewController.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged)
//other code
}
func loadData() {
//code
}
}
答案 0 :(得分:1)
尝试:
yourTableView.addSubview(self.refreshControl)
yourTableView.alwaysBounceVertical = true
答案 1 :(得分:1)
尝试@Anil Varghese' answer。
您必须添加目标,当刷新控件调用事件方法时,您可以更改数据源并重新加载表视图将帮助您重新加载数据。
var refreshControl: UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
refreshControl = UIRefreshControl()
refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
tableView.addSubview(refreshControl) // not required when using UITableViewController
}
func refresh(sender:AnyObject) {
// Code to refresh table view
}
答案 2 :(得分:0)
我在故事板中使用UITableViewController测试您的代码。它运作良好!当我下拉刷新时,功能"刷新"作品。所以,你是什么意思"不能工作"?也许你忘了设置" Custom Class"在故事板中?
此外,我同意@ Paulw11,使用动态细胞更好。