滑动 UITableViewRowActions 时意外出现分隔线
Posted
技术标签:
【中文标题】滑动 UITableViewRowActions 时意外出现分隔线【英文标题】:Separator line unexpectedly appears when swiping UITableViewRowActions away 【发布时间】:2016-02-03 20:08:59 【问题描述】:在我的应用程序中,我使用的是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)
解除行操作后:
你知道如何删除这个奇怪的分隔线吗?
【问题讨论】:
【参考方案1】:我终于找到了一个相对干净的解决方案来解决这个问题 - 我只是在每个标题视图中添加一个“行修复”视图,它将覆盖奇怪的分隔符。由于这似乎是 Apple 的错误,因此这可能是最好的解决方法。
代码如下:
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
【讨论】:
以上是关于滑动 UITableViewRowActions 时意外出现分隔线的主要内容,如果未能解决你的问题,请参考以下文章