滑动 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 时意外出现分隔线的主要内容,如果未能解决你的问题,请参考以下文章

Android 左右滑动+上下滑动 怎么实现

MATLAB如何加入滑动条,并能让滑动条滑动且得到相应数值?(要求代码,画滑动条,得数值)

确定滑动事件是针对左滑动还是右滑动

滑动操作以及滑动方法封装

H5页面切换,左右滑动和上下滑动,哪种好?

appnium实现向上滑动,向下滑动,向左滑动,向右滑动