虽然我从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()
}
答案 0 :(得分:0)
也许不是一个完美的解决方案,但是您可以在删除一行后尝试重新绘制整个tableview。使用reloadData()
让我知道这是否对您有用。