表格检视-删除项目时背景空白

时间:2019-06-01 11:08:40

标签: ios swift uitableview

虽然我从tableview中删除了一行,但它以一种奇怪的方式呈现了内容,上下都留有空白-请参阅视频记录和错误图片: deformed table view after call deletion

可能是由约束更改(顶视图展开/折叠)或不正确的删除操作引起的。

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let contentOffSetY = scrollView.contentOffset.y
    switch true {

    case contentOffSetY < 0 && searchViewIsHidden && !topMainViewIsHidden:
        changeSearchVisibility(false)

    case contentOffSetY > 0 && !searchViewIsHidden && !topMainViewIsHidden:
        changeSearchVisibility(true)

    case contentOffSetY > maxHeaderHeight && searchViewIsHidden && !topMainViewIsHidden:
        transformTopView(toBig: false)

    case self.contentOffSetY <= 0 && searchViewIsHidden && topMainViewIsHidden:
        transformTopView(toBig: true)

    default:
        break
    }
}

// Indexes of items that should be changed from Realm Observer    
func updateTableView(_ deletions: [Int], 
    _ insertions: [Int], _ modifications: [Int]) {
    tableView.beginUpdates()
    tableView.insertRows(at: insertions.map({ IndexPath(row: $0, section: 0) }),
                                     with: .none)
    tableView.deleteRows(at: deletions.map({ IndexPath(row: $0, section: 0)}),
                                     with: .none)
    tableView.reloadRows(at: modifications.map({ IndexPath(row: $0, section: 0) }),
                                     with: .none)
    tableView.endUpdates()
}

1 个答案:

答案 0 :(得分:0)

也许不是一个完美的解决方案,但是您可以在删除一行后尝试重新绘制整个tableview。使用reloadData()

让我知道这是否对您有用。