UITableView 负顶部内容插入导致重新排序行时出现故障
Posted
技术标签:
【中文标题】UITableView 负顶部内容插入导致重新排序行时出现故障【英文标题】:UITableView negative top content inset causes glitch when reordering rows 【发布时间】:2012-03-30 21:57:01 【问题描述】:我有一个 UITableView,其顶部内容插图为负数 (-20)。我将负插图用于阴影效果:表格标题是阴影渐变。负插入导致阴影仅在用户向下拖动表格时出现(类似于时钟应用中的警报表格)。
这很好用。直到我开始重新排序行(通过标准 UITableView 重新排序机制)。
在我抓住第一行的那一刻,整个表格跳下,使最后一行的底部边缘与屏幕底部对齐。这是一个非常奇怪的故障。当我释放行(在相同或其他位置)时,表格保持在这种奇怪的、未对齐的状态。当我进行一些滚动时,表格会回到原来的位置。
如果我将其他行拖到顶行,也会发生这种情况。在顶行下方重新排序可以正常工作。当我将内容插图更改为零(或正数)时,不会发生故障。
这确实像是 ios (5.0) 中的一个错误 - 除非我遗漏了什么?知道如何解决这个问题吗?
【问题讨论】:
【参考方案1】:我在 iOS 6 中也遇到了这个问题。
我找不到解决方法,但如果您的表只有一个部分,则有一种解决方法可能会奏效。基本上,您可以设置负的部分标题高度,而不是将内容插入设置为负值。这似乎与负插图具有相同的效果——向上轻推滚动区域的全部内容——在重新排序期间不会出现故障。
所以而不是:
[tableView setContentInset:UIEdgeInsetsMake(-16, 0, 0, 0)];
试试:
[tableView setSectionHeaderHeight:-16.0];
如果您在部分标题(或表格中的多个部分)中有内容,这当然不会很好地发挥作用,但对于单部分表格,这似乎是一个可行的解决方法。
一个快速更新,因为我还没有足够的代表发表评论: 试图解决的原始错误似乎已在 iOS 7 上得到修复。我最终将修复包含在 iOS
【讨论】:
以上是关于UITableView 负顶部内容插入导致重新排序行时出现故障的主要内容,如果未能解决你的问题,请参考以下文章
使用 UINavigationController 时在 UITableView 顶部插入图像?