更新:现在已在iOS 8.0及更高版本中修复.有关详情,请参阅我接受的答案
我有一个iOS 7 UITableView,我允许在行上滑动删除.我正在处理删除:
tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
附:
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];
Run Code Online (Sandbox Code Playgroud)
使用正确的动画删除所有行,但表中的最后一行除外.当用户滑动以显示删除按钮,然后点击它时,单元格完全从屏幕向左滑动,但在后面留下一个白色单元格,删除按钮仍在其上十分之几秒,然后突然消失.似乎所有细胞都在发生这种情况,但是所有其他细胞在它们下方都有一排向上滑动,覆盖它.
当有问题的行是表中的唯一行时,甚至会删除整个部分而不是行.部分标题滑动到遗忘状态,但带有删除按钮的白色单元格略微延伸.
我希望这最后一个单元格具有与其他单元格相同的UITableViewRowAnimationTop动画.对于发生了什么的任何想法?
更新:这个错误已在 iOS 8 中得到纠正。最后的单元格删除现在会向左滑动,删除按钮会向上滑动并消失,并且背景清晰(动画完成后不再有白色区域突然消失)。在 iOS 8 以下运行时,仍然需要下面的 iOS 7 修复。
iOS 7 修复:我能够通过在表格末尾添加另一个具有足够高的节标题视图的节来纠正此问题。此标题视图的样式看起来像表格底部的空白区域,因此您看不到它的存在。当删除表格的最后一行时,此空白部分标题会向上滑动并覆盖其上方,隐藏卡在那里的删除按钮。这有点黑客行为,但看起来像是一个表视图错误。