在我的应用中,当像这样重新加载tableview单元时
let editItemView = view.viewWithTag(12) as! UITableView
let indexPath = editItemView.indexPathForRowAtPoint(sender.convertPoint(CGPointZero, toView: editItemView))
editItemView.reloadRowsAtIndexPaths([indexPath!], withRowAnimation: UITableViewRowAnimation.Automatic)
并且新的高度小于旧的,有时(特别是当细胞位于视图的底部时),细胞的旧内容的一部分停留在覆盖下面的细胞的屏幕上。所有单元格高度都是正确的,当损坏的单元格(@新大小)移出视图时,它就会消失。但是, reloadData 按预期工作。有人知道如何防止这种情况吗?
答案 0 :(得分:1)
好的,我找到了解决方案:代码是在 reloadRowsAtIndexPaths 之前从同一 UITableView 删除按钮:
F
reloadRowsAtIndexPaths 之后放置此代码会结束tableview的不可预测的行为。
答案 1 :(得分:0)
您是否尝试过包围电话?
editItemView.beginUpdates()
editItemView.reloadRowsAtIndexPaths([indexPath!], withRowAnimation: UITableViewRowAnimation.Automatic)
editItemView.endUpdates()