如何设置表格视图单元格的位置,因为标签栏会阻止单元格?

时间:2014-10-07 15:21:35

标签: ios uitableview uinavigationcontroller uitabbarcontroller

我的故事板的结构是:

A - B - C,d,E

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

2 个答案:

答案 0 :(得分:0)

问题是TableView高度不正确。 您必须设置TableView的约束,以便tableView的底部位于TabBar的开头。

答案 1 :(得分:0)

在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;
}

上面的代码会生成一个灰色的tabBar。每次切换选项卡都会降低表格高度,因此将上面的代码移动到viewDidLoad,并将tabBar半透明设置为NO。

解决方案1:

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;

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

解决方案2:

self.tableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, CGRectGetHeight(self.tabBarController.tabBar.frame), 0.0f);