iOS 6上弹出窗口中分组UITableView下的额外空间

iOS 6上弹出窗口中分组UITableView下的额外空间,uitableview,ios6,popover,Uitableview,Ios6,Popover,我有一个在弹出窗口中显示各种分组UITableView的应用程序。在演示popover之前,我在tableViewController上调用setContentSizeForViewInPopover,并将高度设置为tableViewController.tableView.contentSize.height 这在iOS 5中运行良好,但现在在iOS 6上,UITableView的最后一个单元格下有额外的空间,就好像有页脚一样。当我调用setContentSizeForViewInPopove

我有一个在弹出窗口中显示各种分组UITableView的应用程序。在演示popover之前,我在tableViewController上调用setContentSizeForViewInPopover,并将高度设置为tableViewController.tableView.contentSize.height

这在iOS 5中运行良好,但现在在iOS 6上,UITableView的最后一个单元格下有额外的空间,就好像有页脚一样。当我调用setContentSizeForViewInPopover时,我可以减去空间的高度,但这似乎是一个令人讨厌的黑客行为


还有其他人经历过吗?

我也经历过

现在通过将UITableView子类化并将其添加到viewDidLoad中解决了这个问题

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0.0f,0.0f,1.0f,1.0f)];

我也希望有一个不太老套的解决方案。

我知道这与@Loks的答案几乎相同,但肯定更干净

不需要对
UITableView
进行子类化,只需将表的页脚设置为:

[tableView setTableFooterView:[UIView new]];
这将删除底部的空间,并且不需要GPU处理其他视图。所有这些都是从表中删除多余的行和多余的空间


我希望这有帮助

是的,这是一个令人讨厌的问题。您可以使用
contentInset
来补偿20px额外的底部边距:

tableView.contentInset = UIEdgeInsetsMake(0, 0, -20, 0);

谢谢你的回复。我也做了同样的事,但一定有更干净的方法!虽然我不知道为什么这是必要的,但对我来说也是有效的。我没有发现任何文档表明此更改发生在iOS6中-还有其他人吗?那么,您可以使用
[UIView new]
。它的黑客性并没有降低多少,但它确实防止了GPU必须处理绘制另一个视图的过程,因为
UIView
具有
CGRectZero