gpt4 book ai didi

ios - UITableView 滚动到底部时更新数据

转载 作者:行者123 更新时间:2023-11-28 08:27:30 24 4
gpt4 key购买 nike

当 tableview 在底部滚动时,我正在从服务器获取新内容。数据已获取,但未在 UI 中更新。我已经放置了断点并检查了数组包含,它会根据需要更新,但不会在 UI 上更新。

func scrollViewDidScroll(scrollView: UIScrollView) {
let contentOffset = scrollView.contentOffset.y
let maximumOffset = scrollView.contentSize.height - scrollView.frame.size.height;

if !isLoadingMore && (Double(maximumOffset) - Double(contentOffset) <= threshold)
{
loadData(typeInString, start: start, userId: "", lat: "", long: "")
self.isLoadingMore = true

// Update UI
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
self.isLoadingMore = false
}
}
}



func loadData(type: String, start: Int, userId: String, lat: String, long: String) {
Alamofire.request(.GET,Pagination.toGetUrl(type, start: start, userId: userId, lat: "",long: ""))
.responseJSON { response in
print(response.0?.URLString)
if (response.2.value != nil){
if let json: JSON = JSON(response.2.value!){
if !json["error"].boolValue{

if json["data"].count == 0 {
self.checkData = false
}
print("#$#$#$#$")
print(json)
print("#$#$#$#$")

if type == "users"{
for (_, subjson):(String, JSON) in json["data"]{
self.imagesURL.append(subjson["profile_image_url_small"].stringValue)
self.userName.append(subjson["name"].stringValue)
}

}
}
}
}

}

最佳答案

您发出异步加载数据请求,然后立即重新加载 TableView 。并且仅在请求完成一段时间后更新数据,然后什么也没有发生。您需要在请求完成之后而不是之前重新加载 TableView 。

......
if type == "users"{
for (_, subjson):(String, JSON) in json["data"] {
self.imagesURL.append(subjson["profile_image_url_small"].stringValue)
self.userName.append(subjson["name"].stringValue)
}
}

// Update UI
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
self.isLoadingMore = false
}
......

关于ios - UITableView 滚动到底部时更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39624611/

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