当桌面视图在底部滚动时,我从服务器获取新内容。获取数据但未在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)
}
}
}
}
}
}
答案 0 :(得分:0)
您发出异步loadData请求,然后立即重新加载表视图。只有在一段时间后请求完成,才更新数据,没有任何反应。您需要在请求完成后重新加载表视图,而不是之前。
......
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
}
......