Ios 如何设置表格视图单元格的位置,因为选项卡栏会阻止该单元格?

Ios 如何设置表格视图单元格的位置,因为选项卡栏会阻止该单元格?,ios,uitableview,uinavigationcontroller,uitabbarcontroller,Ios,Uitableview,Uinavigationcontroller,Uitabbarcontroller,我的故事板的结构是: a-b-c,d,e a是一个导航控制器 b是一个选项卡栏控制器 c、 d、e是选项卡视图 c是一个表视图控制器,包含大约10个单元格。 当我向上滚动时,最后一个单元格和选项卡栏的位置重叠。 如何设置最后一个单元格的位置,以便它可以放置选项卡栏,以便我们可以触摸它? 谢谢。问题是TableView高度不正确。 必须设置TableView的约束,以便TableView的底部位于选项卡栏的开头 将其添加到tableview控制器中,主要目的是降低桌子高度 - (void)view

我的故事板的结构是:

a-b-c,d,e

a是一个导航控制器 b是一个选项卡栏控制器 c、 d、e是选项卡视图 c是一个表视图控制器,包含大约10个单元格。 当我向上滚动时,最后一个单元格和选项卡栏的位置重叠。 如何设置最后一个单元格的位置,以便它可以放置选项卡栏,以便我们可以触摸它?
谢谢。

问题是TableView高度不正确。
必须设置TableView的约束,以便TableView的底部位于选项卡栏的开头

将其添加到tableview控制器中,主要目的是降低桌子高度

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height;
    CGRect frame = self.tableView.frame;
    frame.size.height -= tabBarHeight;
    self.tableView.frame = frame;
}
上述代码将导致灰色选项卡栏。每次切换tab都会降低表格高度,因此将上述代码移动到viewDidLoad,并将tabBar半透明设置为NO

解决方案1:

或者,您可以在viewDidLoad中配置tableView的contentInset

解决方案2:


您的意思是我将底部单元格的高度设置为足够大,以便它可以位于选项卡栏的开头吗?但这有点奇怪,因为单独的一行远远地位于底部单元格的上下文后面。表视图的高度太大了。你必须缩短表视图。在故事板中,选择表视图,然后在Xcode的顶部菜单栏上,编辑菜单,转到pin,底部空间到superview当我选择表视图时,底部空间到superview项无法选择是的,这些代码可以解决我的问题。但奇怪的事情发生了,当我切换到另一个选项卡视图时,选项卡栏背景变为灰色选项卡栏背景为白色?
CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height;
CGRect frame = self.view.frame;
frame.size.height -= tabBarHeight;
self.view.frame = frame;
self.tabBarController.tabBar.translucent = NO;
self.tableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, CGRectGetHeight(self.tabBarController.tabBar.frame), 0.0f);