繁体   English   中英

UITableView负顶部内容插入在重新排序行时会导致毛刺

[英]UITableView negative top content inset causes glitch when reordering rows

我有一个UITableView,负顶部内容插入(-20)。 我使用负插入阴影效果:表头是阴影渐变。 负插入导致阴影仅在用户向下拖动表时出现(类似于Clock应用程序中的Alarms表)。

这很好用。 直到我开始重新排序行(通过标准的UITableView重新排序机制)。

我抓住第一行的瞬间,整个表跳下,使最后一行的下边缘与屏幕底部对齐。 这是一个非常奇怪的故障。 当我释放行(在相同或其他位置)时,表保持在这种奇怪的,未对齐的状态。 当我进行一些滚动时,表格返回其原始位置。

如果将其拖到顶行,其他行也会发生这种情况。 在顶行下面重新排序工作正常。 当我将内容插入更改为零(或正数)时,不会发生毛刺。

它看起来像iOS(5.0)中的一个错误 - 除非我遗漏了什么? 知道如何解决这个问题吗?

我在iOS 6中也遇到了这个问题。

我找不到修复方法,但是如果您的表只有一个部分,那么可以使用一种解决方法。 基本上,您可以设置负片段标题高度,而不是将内容插入设置为负值。 这似乎与负插入具有相同的效果 - 向上推动滚动区域的整个内容 - 在重新排序期间没有毛刺。

所以代替:

[tableView setContentInset:UIEdgeInsetsMake(-16, 0, 0, 0)];

尝试:

[tableView setSectionHeaderHeight:-16.0];

如果您在节标题(或表中的多个节)中有内容,这当然不会很好,但对于单节表,它似乎是一个可通过的解决方法。


一个快速更新,因为我还没有足够的回复评论:这个试图解决的原始错误似乎在iOS 7上得到修复。我最终将修复包装在iOS <7设备的版本检查条件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM