在我的应用中,我使用的是UITableView
,其中包含多个标题,每个标题包含一行或两行。每个单元格都有两个UITableViewRowActions
。我的问题是,每当这些行动作被动画化时,单元格和下面的标题之间会出现一个奇怪的分隔符。
我尝试关闭默认分隔符,而是使用自定义分隔符,但由于某种原因,我实际上需要使用默认分隔符。
在下一步中,我尝试仅对那些位于下一个标题顶部的单元格禁用分隔符,如下所示,但它不起作用:
if #available(iOS 9.0, *) {
tableView.cellLayoutMarginsFollowReadableWidth = false
}
cell.layoutMargins = UIEdgeInsetsZero
cell.preservesSuperviewLayoutMargins = false
cell.separatorInset.left = self.view.frame.size.width
为了帮助您获得问题的印象,我创建了三个显示奇怪行为的屏幕截图:
之前:
显示行动时:
使用tableView.setEditing(false, animated: true)
解除行动后
你知道如何删除这个奇怪的分隔线吗?
答案 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
}