如何在导航和选项卡控制器中正确添加UITableView?

时间:2015-02-07 07:52:14

标签: ios objective-c uitableview

我有一个导航设置,顶部有一个UITabBarController。然后我有一个选项卡,通过创建一个UIVavigationController来实例化,如下所示:

UIViewController *testVC = [UIViewController new]; // Has UITableView as subview
UINavigationController *testNavVC = [[UINavigationController alloc] initWithRootViewController:testVC];

[self setViewControllers:@[testNavVC]];

引发的问题是testVC UIViewController中的UITableView。该表在顶部正确显示,并且正确位于UINavController的导航栏下方。但是,当您将表格视图滚动到底部时,表格视图中的最后一行将在屏幕底部被截断。我发现我可以将底部内容设置为100(值将根据行高度而不同)以正确显示内容。我觉得我不应该这样做,而且我正在寻找更好的解决方案。

如何正确添加以这种方式嵌套的UITableView?

作为旁注,当使用UITableViewController而不是带有添加的UITableView的UIViewController时,这一切都能正常工作。在我的情况下,我需要使用后一种选择。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用bottomLayoutGuide属性调整UITableView底部插入而无需硬编码:

tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, self.bottomLayoutGuide.length, 0.0);

表示内容的最低垂直范围,可以在iOS 7中使用。

作为替代方案,您可以使用此值为UITableView创建底部NSLayoutConstraint。

答案 1 :(得分:0)

我的所有代码都是以编程方式完成的,问题最终是我用视图框设置了UITableView。我将其切换为使用自动布局,而且效果很好!