我在表视图中添加了一个UIRefreshControl,以便允许用户拉动刷新。

他们不需要每30秒不断刷新一次。如何允许他们每30秒执行一次?

@IBOutlet weak var tableView: UITableView!

private let refresher: UIRefreshControl = UIRefreshControl()

override func viewDidLoad() {
    super.viewDidLoad()

    //load Event data
    loadData()

    // Add Refresh Control to Table View
    tableView.refreshControl = refresher

    refresher.addTarget(self, action: #selector(refreshData(_:)), for: .valueChanged)
    refresher.attributedTitle = NSAttributedString(string: "Fetching events...")

}

@objc private func refreshData(_ sender: Any) {
    // Fetch Data
    loadData()
}


private func loadData() {
     //code here for grabbing data
}

最佳答案

很简单;每次用户刷新时,都将Date存储在属性中,下次,如果还没有经过30秒,则什么都不做。

10-08 05:47