如果删除一行,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)
}
}
}
答案 0 :(得分:1)
根据我们的评论讨论-您可以使用视图层次结构调试器来调试UI。这有助于查明视图中的异常。
答案 1 :(得分:0)
或者尝试更改表格视图的背景颜色。