滑动UITableViewRowActions时意外出现分隔线

时间:2016-02-03 20:09:00

标签: ios swift uitableview

在我的应用中,我使用的是UITableView,其中包含多个标题,每个标题包含一行或两行。每个单元格都有两个UITableViewRowActions。我的问题是,每当这些行动作被动画化时,单元格和下面的标题之间会出现一个奇怪的分隔符。

我尝试关闭默认分隔符,而是使用自定义分隔符,但由于某种原因,我实际上需要使用默认分隔符。

在下一步中,我尝试仅对那些位于下一个标题顶部的单元格禁用分隔符,如下所示,但它不起作用:

if #available(iOS 9.0, *) {

      tableView.cellLayoutMarginsFollowReadableWidth = false

  }

cell.layoutMargins = UIEdgeInsetsZero
cell.preservesSuperviewLayoutMargins = false
cell.separatorInset.left = self.view.frame.size.width

为了帮助您获得问题的印象,我创建了三个显示奇怪行为的屏幕截图:

之前:

enter image description here

显示行动时:

enter image description here

使用tableView.setEditing(false, animated: true)解除行动后

enter image description here

你知道如何删除这个奇怪的分隔线吗?

1 个答案:

答案 0 :(得分:3)

我终于找到了一个相对干净的解决方案来解决这个问题 - 我只是添加一个"行修复"查看每个标题视图,这将覆盖奇怪的分隔符。由于它似乎是一个Apple bug,这可能是最好的解决方法。

以下是代码:

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let view = UITableViewHeaderFooterView()

    let lineFix = UIView(frame: CGRect(x: 0, y: -0.5, width: tableView.frame.size.height, height: 0.5))
    lineFix.backgroundColor = UIColor.groupTableViewBackgroundColor()
    view.addSubview(lineFix)

    return view

}