我有一个Tabbarcontroller,在第一个tabview中我有一个tableviewcontroller。现在最后一行是一半可见,其余部分位于tabbarcontroller下面。
我在tabbar控制器的界面构建器中取消选中了扩展边,但没有任何变化。
我也在我的tableview控制器中试过这个:
self.edgesForExtendedLayout = UIRectEdgeNone;
但最后一行仍然是标签栏下方的一半。
有人知道如何解决这个问题吗?
答案 0 :(得分:8)
在viewDidLoad方法中尝试此方法
- (void)viewDidLoad
{
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeAll;
self.tableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, CGRectGetHeight(self.tabBarController.tabBar.frame), 0.0f);
}
答案 1 :(得分:1)
派对有点晚了,但对此的快速解决方案就是添加一行:
self.edgesForExtendedLayout = .None
到ViewController的ViewDidLoad
答案 2 :(得分:0)
Swift 3
我遇到了这个问题,几个小时都在寻找答案。进入故事板并取消选中" Under Bottom Bars"没有工作。我遇到了这个答案,但是当试图像Sanjay那样访问tabBar的高度时,他们仍然保持不变。我将tabBar高度硬编码,而且它都是肉汁。
在viewDidLoad中添加以下内容:
override func viewDidLoad() {
super.viewDidLoad()
let tabBarHeight = CGFloat(49)
edgesForExtendedLayout = UIRectEdge.all
tableView.contentInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: tabBarHeight, right: 0.0)
}
答案 3 :(得分:0)
这是由于TabBar默认情况下在IB中是半透明的,如果您不需要此效果,可以使用代码更改它:
override func viewDidLoad() {
super.viewDidLoad()
tabBarController?.tabBar.isTranslucent = false
}
或者在IB中选择tabBar并取消选中Translucent框。