我的iOS应用使用UITableViewController来显示表格视图。内置编辑按钮可切换到编辑模式。某些单元格需要显示附件视图,这可以通过设置cell.accessoryType = .detailButton
来完成。同时在所有单元格上设置cell.editingAccessoryType = .none
。在编辑模式下,单元格还显示重新排序,删除和插入附件视图。
问题
问题是当切换到编辑模式时,附件视图会留在某些单元格上,并移动到单元格的左上角。这似乎是随机发生的。
以下是配置每个单元格的代码:
private func tableView(_ tableView: UITableView, cellForTextFragment fragment: Fragment, at indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: basicCellIdentifier, for: indexPath) as! BasicFragmentCell
cell.contentTextField.text = fragment.value
cell.showsReorderControl = true
switch fragment.type {
case .phoneNumber, .email:
cell.accessoryType = .detailButton
default:
cell.accessoryType = .none
}
cell.editingAccessoryType = .none
return cell
}
完整的来源是GitHub:https://github.com/lukevanin/OCRAI
修改模式
非编辑模式
答案 0 :(得分:0)
解决方法是使用带有嵌入式UIViewController
的标准UITableView
,而不是使用UITableViewController
。
要使编辑工作正常,当UITableView
上的编辑状态发生变化时,需要在UIViewController
上明确设置编辑模式,例如
override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
tableView.setEditing(editing, animated: animated)
}