gpt4 book ai didi

ios - 如何保存特定 UITableViewCell 的复选标记状态

转载 作者:行者123 更新时间:2023-11-30 12:01:25 26 4
gpt4 key购买 nike

我在一个UIViewController中有一个UITableView,我尝试存储accessoryType的状态,以便当用户重新加载应用程序时,用户之前选择的单元格使用NSUserDefault 应显示带有复选标记。但我面临的问题是,当我检查单元格的数据是否等于用户默认的数据时,一些未选择的单元格也会显示一个复选标记,但它不应该这样做。

这是我的代码:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = newCategoriesTableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.backgroundColor = colorArray[indexPath.row]
let entry: Categories
if isFiltering() {
entry = filteredCategories[indexPath.row]
} else {
entry = categoryTitles[indexPath.row]
}

cell.selectionStyle = .none

cell.textLabel?.text = entry.name
cell.detailTextLabel?.text = entry.description

let defaults = UserDefaults.standard
if let userCategortList = defaults.object(forKey: "userCategoryList") as? [String]{
for category in userCategortList{
if(cell.textLabel?.text == category){
cell.accessoryType = .checkmark
break
}
}
}

return cell
}

最佳答案

这可能是单元重用问题,因为您正在使单元出队。您需要确保为未设置为复选标记的情况设置 cell.accessoryType = .none

关于ios - 如何保存特定 UITableViewCell 的复选标记状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168831/

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