gpt4 book ai didi

swift - uitableview 在数据第一次加载时滚动到顶部

转载 作者:行者123 更新时间:2023-11-28 07:20:53 24 4
gpt4 key购买 nike

我正在使用 reloadData() 来加载 tableview 数据,但是当它加载数据时我的第一次加载的 table view 滚动到顶部 like so ...这对用户体验来说不是很好。你们中有人知道阻止这种行为的解决方案吗?感谢您的帮助 !我从 firebase 获取用户,我正在加载图像,如下所示:

 func getUsersFromFirebase(){
refUsers.observeSingleEvent(of: .value, with: { (snapshot) in
let usersNbr = snapshot.childrenCount
var counter = 0
var newUsers: [User] = []
for item in snapshot.children {
counter = counter + 1
let newitem:DataSnapshot = item as! DataSnapshot
let user = User(snapshot: item as!DataSnapshot,uid:newitem.key.description)
var newWishlists:[WishList]=[] self.refProducts.child(newitem.key.description).observeSingleEvent(of : DataEventType.value, with: { (snapshot) in
for item in snapshot.children {
let newItem:DataSnapshot = item as! DataSnapshot
let newWishlist=WishList.init(snapshot: newItem)
if(newWishlist.products.count != 0 && !newWishlist.name.trimmingCharacters(in: .whitespaces).isEmpty){
newWishlists.append(newWishlist)
}
}
user.wishLists=newWishlists
if(!(user.name=="" || user.image=="" ) ){
print("user privacy 1: " + user.isPrivate.description)
if(!user.isPrivate && user.wishLists.count != 0){
if(!user.isPrivate){
newUsers.append(user)
}
}
}
self.firebaseUsers = newUsers.shuffled()
GlobalVar.isAppFirstLoad=false

GlobalVar.allUsers = self.firebaseUsers
DispatchQueue.main.async {
self.reload(tableView: self.usersTableView)
print("user tableview reloaded 1")
}

})

}

}) { (error) in
print(error.localizedDescription)
MBProgressHUD.hideAllHUDs(for: self.usersTableView, animated: true)
}
}
func reload(tableView: UITableView) {
let contentOffset = tableView.contentOffset
tableView.reloadData()
tableView.layoutIfNeeded()
tableView.setContentOffset(contentOffset, animated: false)

}

我发现了技巧及其 .shuffled() 导致了我认为当 tableview 重新加载数据时数组仍在洗牌的行为。所以你们中的任何人都知道如何检查数组是否已完成洗牌?

最佳答案

所以如果你 checkin 你的代码你有标志

 GlobalVar.isAppFirstLoad=false

如果你用常识思考它为什么存在?你应该检查如果条件包含 GlobalVar.isAppFirstLoad 此值为 true 并且在其 block 中它们将是一些将 tableView 滚动到顶部的代码。

找到并删除它。

关于swift - uitableview 在数据第一次加载时滚动到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58113327/

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