我有一系列房间,我想按 usercount/topvotes 之类的东西过滤。
我正在点击按钮以触发过滤器更改并将值设置为“CurrentSearch”,重新加载我的表数据,并在我的 cellForRowAtIndexPath 中检查当前的 currentsearch 值并相应地过滤列表。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if currentSearch == "new" {
self.PersonalSearchesList = PersonalSearchesList.sorted{ $0.users < $1.users }
} else if currentSearch == "top" {
self.PersonalSearchesList = self.PersonalSearchesList.sorted{ $0.latestUser < $1.latestUser }
}
我的图像/标签在过滤之前加载得非常好。在初始加载时,我将 currentSearch 设置为“new”,它运行良好。只有当我开始尝试在过滤器之间交换时,事情才会变得很奇怪。我得到了随机的单元格副本,当我在过滤器之间交换时,不正确的负载保持一致......因为相同单元格的相同副本被制作/放置在相同的位置。
我有它,当我点击一个单元格时,单元格的信息被打印出来..尽管单元格信息加载不正确,但实际信息是正确的,列表按应有的顺序排列。
有什么想法吗?
最佳答案
你应该这样做:
var currentSearch: String {
didSet {
// sort your array
tableView?.reloadData() // reload data
}
}
关于ios - 排序数组导致错误的数据显示到单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39503206/