【问题标题】:iOS 11 UITableViewCell above viewForHeaderInSection view after deletingiOS 11 UITableViewCell 上面 viewForHeaderInSection 视图删除后
【发布时间】:2017-09-20 14:57:18
【问题描述】:

我有简单的 UITableViewController。

查看标题。从xib初始化。 和单一类型的细胞。

通过滑动删除单元格后,上面删除的单元格在 HeaderView 上方可见,而其他单元格只是隐藏在 HeaderView 下方。

如果以上内容不清楚,请询问。

视频:https://youtu.be/aX-iPnM3q4Q

【问题讨论】:

    标签: ios swift uitableview ios11


    【解决方案1】:

    我认为这应该解决它:

    tableView.sendSubview(toFront: tableView.headerView(forSection: 0)!)
    

    (假设您只有 1 个部分)

    您可以在删除单元格后设置此项,例如在commitEditingStyle中。

    【讨论】:

    • 这是我尝试的第一件事。不幸的是,没有帮助。
    【解决方案2】:

    找到了解决办法。

    func deleteItem(from indexPath: IndexPath, tableView: UITableView) {
        cellsData.remove(at: indexPath.row)
        CATransaction.begin()
        tableView.beginUpdates()
        CATransaction.setCompletionBlock {
            tableView.reloadData()
        }
        tableView.deleteRows(at: [indexPath], with: .left)
        tableView.endUpdates()
        CATransaction.commit()
    }
    

    tableView.reloadData() 的作用是修复 headerView 上方出现的单元格,但会杀死动画。所以如果你不关心动画,你可以只添加 reloadData()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多