UITableView:编辑模式下单元格附件视图的外观不正确

时间:2017-02-28 15:17:06

标签: ios uitableview

我的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

修改模式

Incorrect positioning of accessory view

非编辑模式

enter image description here

1 个答案:

答案 0 :(得分:0)

解决方法是使用带有嵌入式UIViewController的标准UITableView,而不是使用UITableViewController

要使编辑工作正常,当UITableView上的编辑状态发生变化时,需要在UIViewController上明确设置编辑模式,例如

override func setEditing(_ editing: Bool, animated: Bool) {
    super.setEditing(editing, animated: animated)
    tableView.setEditing(editing, animated: animated)
}