如何修复删除一行后的黑色背景”

时间:2019-01-08 23:17:01

标签: swift uitableview

如果删除一行,tableView将在单元格下方显示黑色区域,而tableView与单元格视图一样具有白色背景颜色。

看看这个: https://www.dropbox.com/s/55ssb73t0ngr9yj/screenshot.png?dl=0

在删除一行(可以是其中任何一行,不一定是最后一行)之后,突然出现黑色区域​​,尽管我没有更改tableView的任何约束或高度。另外,在tableView的后面,此区域中除了背景为白色的“ self.view”以外,什么都没有,并且在表视图的前面没有任何视图。 (有一个视图,但是它是屏幕的大小,因此不能仅在该区域显示黑色。)

extension ApptDetailViewController: UITableViewDataSource {

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return appt.places.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "ApptDetailCell", for: indexPath) as! ApptDetailCell
    cell.placeNumLabel.text = "Place \(indexPath.row + 1)"
    cell.placeNameLabel.text = appt.places[indexPath.row]

    return cell
}

}

extension ApptDetailViewController: UITableViewDelegate {

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

    return 60
}

func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {

    let moveString = appt.places.remove(at: sourceIndexPath.row)
    let moveBool = appt.reachedPlaces.remove(at: sourceIndexPath.row)

    appt.places.insert(moveString, at: destinationIndexPath.row)
    appt.reachedPlaces.insert(moveBool, at: destinationIndexPath.row)

    print("appt.places: \(appt.places)")
}

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {

    return true
}

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {

    if editingStyle == .delete {
        // deletion occurred.
        appt.places.remove(at: indexPath.row)
        appt.reachedPlaces.remove(at: indexPath.row)

        tableView.deleteRows(at: [indexPath], with: .right)
    }
}
}

2 个答案:

答案 0 :(得分:1)

根据我们的评论讨论-您可以使用视图层次结构调试器来调试UI。这有助于查明视图中的异常。

答案 1 :(得分:0)

或者尝试更改表格视图的背景颜色。