我有一个UITableView,顶部内容为负(-20)。我使用负插入阴影效果:表头是阴影渐变。负插入导致阴影仅在用户向下拖动表时出现(类似于Clock应用程序中的Alarms表)。
这很好用。直到我开始重新排序行(通过标准UITableView重新排序机制)。
我抓住第一行的瞬间,整个桌子向下跳,使最后一行的下边缘与屏幕底部对齐。这是一个非常奇怪的故障。当我释放行(在相同或其他位置)时,表保持在这种奇怪的,未对齐的状态。当我进行一些滚动时,表格将返回其原始位置。
如果将其拖到顶行,其他行也会发生这种情况。在顶行下面重新排序工作正常。当我将内容插入更改为零(或正数)时,不会发生毛刺。
这似乎是iOS(5.0)中的一个错误 - 除非我遗漏了什么?知道如何解决这个问题吗?
答案 0 :(得分:2)
我在iOS 6中也遇到了这个问题。
我找不到修复程序,但如果您的表只有一个部分,则可以使用一种解决方法。基本上,您可以设置负片段标题高度,而不是将内容插入设置为负值。这似乎与负插入具有相同的效果 - 向上推动滚动区域的整个内容 - 在重新排序期间没有毛刺。
所以而不是:
[tableView setContentInset:UIEdgeInsetsMake(-16, 0, 0, 0)];
尝试:
[tableView setSectionHeaderHeight:-16.0];
如果您在节标题(或表中的多个部分)中有内容,这当然不会很好,但对于单节表,它似乎是一个可通过的解决方法。
一个快速更新,因为我还没有足够的回复评论: 这个尝试解决的原始错误似乎在iOS 7上得到修复。我最终将修复包装在iOS< 7设备的版本检查条件中。