我正在使用swift構建RSS閱讀器,并且需要實現pull to reload功能。這是我試圖做到的方式。class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { @IBOutlet var refresh: UIScreenEdgePanGestureRecognizer @IBOutlet var newsCollect: UITableView var activityIndicator:UIActivityIndicatorView? = nil override func viewDidLoad() { super.viewDidLoad() self.newsCollect.scrollEnabled = true // Do any additional setup after loading the view, typically from a nib. if nCollect.news.count <= 2{ self.collectNews() } else{ self.removeActivityIndicator() } view.addGestureRecognizer(refresh) }@IBAction func reload(sender: UIScreenEdgePanGestureRecognizer) { nCollect.news = News[]() return newsCollect.reloadData()}我正進入(狀態 :super.init調用未初始化屬性“ self.refresh”請幫助我了解手勢識別器的行為。一個有效的示例代碼將有很大的幫助。謝謝。
3 回答

慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
拉動刷新是iOS內置的。您可以像
var refreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
refreshControl.addTarget(self, action: #selector(refresh(_:)), for: UIControl.Event.valueChanged)
tableView.addSubview(refreshControl) // not required when using UITableViewController
}
@objc func refresh(sender:AnyObject) {
// Code to refresh table view
}
在某些時候,您可能會刷新。
refreshControl.endRefreshing()
- 3 回答
- 0 關注
- 608 瀏覽
添加回答
舉報
0/150
提交
取消