我正在使用 swift 构建一个 RSS 阅读器,并且需要实现 pull 以重新加载功能。
这是我正在尝试的方法。
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() }
我正进入(状态 :
属性“self.refresh”未在 super.init 调用中初始化
请帮助我了解手势识别器的行为。一个工作示例代码将是一个很大的帮助。
谢谢。
拉动刷新 是在 iOS 中内置的。你可以像这样快速地做到这一点
let refreshControl = UIRefreshControl() override func viewDidLoad() { super.viewDidLoad() refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh") refreshControl.addTarget(self, action: #selector(self.refresh(_:)), for: .valueChanged) tableView.addSubview(refreshControl) // not required when using UITableViewController } @objc func refresh(_ sender: AnyObject) { // Code to refresh table view }
在某些时候,您可能会结束刷新。
refreshControl.endRefreshing()