Tableview最后一行被切断tabbarcontroller下

问题描述:

我有一个Tabbarcontroller和第一个tabview我有一个tableviewcontroller。现在最后一行是半可见的,其余的在tabbarcontroller下面。Tableview最后一行被切断tabbarcontroller下

我没有选中我的tabbar控制器的界面生成器中的边缘,但没有任何更改。

我也试过这在我的tableview控制器:

self.edgesForExtendedLayout = UIRectEdgeNone; 

但还是最后一排是成功的一半的TabBar下方。

有人想法我怎么能解决这个问题?

试试这个viewDidLoad方法中

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.edgesForExtendedLayout = UIRectEdgeAll; 
    self.tableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, CGRectGetHeight(self.tabBarController.tabBar.frame), 0.0f); 
} 
+0

谢谢,它现在有效。奇怪的是,当你在界面构建器中设置它时,它不起作用,并且在代码中它可以工作。 – user1007522 2015-04-06 10:38:48

有点迟到了,但迅速解决这将是只是行添加:

self.edgesForExtendedLayout = .None

您的ViewController的ViewDidLoad

Swift 3

我有这个问题,并寻找小时的答案。进入故事板并取消选中“底部酒吧”不起作用。我遇到了这个答案,但在试图访问像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) 
} 

它是由的TabBar造成被默认在IB半透明的,如果你不需要这个效果,你可以用代码更改:

override func viewDidLoad() { 
    super.viewDidLoad() 

    tabBarController?.tabBar.isTranslucent = false 
} 

或通过选择tabBar并在IB中取消选中半透明框。