在Xcode 12和Swift 5中,保存TableView单元格的复选标记状态可以通过以下步骤实现:
下面是一个示例代码:
// 定义单元格模型
struct CellModel {
var isSelected: Bool
}
// 在ViewController中定义数据源和代理方法
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var cellModels = [CellModel]()
// 在视图加载时初始化数据模型和TableView
override func viewDidLoad() {
super.viewDidLoad()
// 初始化cellModels数组
for _ in 0..<numberOfCells {
cellModels.append(CellModel(isSelected: false))
}
// 设置TableView的数据源和代理
tableView.dataSource = self
tableView.delegate = self
}
// UITableViewDataSource方法
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cellModels.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifier", for: indexPath)
// 根据模型状态设置复选标记
let model = cellModels[indexPath.row]
cell.accessoryType = model.isSelected ? .checkmark : .none
return cell
}
// UITableViewDelegate方法
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// 更新模型状态
cellModels[indexPath.row].isSelected.toggle()
// 刷新选中的单元格
tableView.reloadRows(at: [indexPath], with: .automatic)
}
// 保存选中单元格的状态
func saveSelectedCellState() {
var selectedCells = [Int]()
for (index, model) in cellModels.enumerated() {
if model.isSelected {
selectedCells.append(index)
}
}
// 根据需求保存选中的单元格,可以保存索引或者模型对象
// ...
}
}
请注意,这只是一个示例代码,你可以根据实际需求进行修改和扩展。关于Xcode 12和Swift 5的更多信息,以及与腾讯云相关的产品和文档,请参考腾讯云官方网站。
领取专属 10元无门槛券
手把手带您无忧上云