gpt4 book ai didi

ios - UIRefreshControl 不消失

转载 作者:行者123 更新时间:2023-11-28 12:39:11 28 4
gpt4 key购买 nike

拉动刷新并没有消失。屏幕上只有 3 行可见,使用 print(indexPath.row) 后我可以看到它再次重新加载行 0、1、2,但刷新控件没有消失。

override func viewDidLoad() {
super.viewDidLoad() ...
refreshControl = UIRefreshControl()
refreshControl!.addTarget(self, action: #selector(self.loadData), forControlEvents: UIControlEvents.ValueChanged)
refreshControl!.backgroundColor = UIColor.clearColor()
refreshControl!.tintColor = UIColor.clearColor()
tableView.addSubview(refreshControl!)...}

这是加载数据函数:

func loadData() {
venues = [CKRecord]()

let location = locationManager.location

let radius = CGFloat(1000)

let sort = CKLocationSortDescriptor(key: "Location", relativeLocation: location!)

let predicate = NSPredicate(format: "distanceToLocation:fromLocation:(%K,%@) < %f", "Location", location!, radius)

let publicData = CKContainer.defaultContainer().publicCloudDatabase

let query = CKQuery(recordType: "Venues", predicate: predicate )

query.sortDescriptors = [sort]


publicData.performQuery(query, inZoneWithID: nil) { (results:[CKRecord]?, error:NSError?) in
if let venues = results {
self.venues = venues
dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData()
})

}
}
}

最佳答案

首先,这一行是错误的:

tableView.addSubview(refreshControl!)...}

在 iOS 10 中,您不需要将刷新控件添加到 TableView 作为 subview 。它具有您设置refreshControl 属性:

tableView.refreshControl = refreshControl

其次,您完全正确,刷新控件不会自行消失。重新加载数据后,由向刷新控件发送 endRefreshing() 消息。

        dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData()
self.tableView.refreshControl.endRefreshing()
})

关于ios - UIRefreshControl 不消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39949500/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com