Я использую reloadData () для загрузки данных просмотра таблицы, но мое представление таблицы при первой загрузке прокручивается вверх при загрузке данных примерно так ... , и это не очень приятно для пользователя.Кто-нибудь из вас знает решение, ребята, чтобы остановить это поведение.Спасибо за помощь !Я получаю пользователей из 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 (), которая вызывает поведение, которое, я думаю, массив все еще тасует, когда табличное представление перезагружаетданные.Так кто-нибудь из вас знает, как проверить, что массив закончил перемешивать?