推送后tabbar的底部布局指导长度问题

时间:2014-10-01 22:21:06

标签: ios ios8 autolayout

所以我的问题与自动布局和底部布局指南有关。

这是应用程序的设计:

  

的UITabBarController

     
    

^ - Tab1:以VC1为根的NavigationController

         
      

^ - 按下VC2并隐藏标签栏(全屏,顶部布局位于导航栏下方,底部布局应为最低像素)。

    
  

按下VC2时,底部布局指南在很短的时间内长度为49点,然后是0。

在此期间,限制在此底部指南的子视图位置不正确。

当指南正确地设置为0时(由导航控制器本身,我没有关于此的代码),子视图位置是完美的。

cast

这不会发生在iOS 7.x上(该应用程序支持7.0 +)...我非常确定这是一个iOS 8错误,我正在寻找解决方法,但我找不到解决这个问题的东西。

我试图解决强制导航控制器查看布局视图(Will / Did)LayoutSubviews的问题,但它没有帮助。

我看到this post是相关的,但建议的解决方案不起作用。 以模态方式呈现VC2解决了这个问题,但这是不可接受的。

在此先感谢您的帮助,如果您需要更多解释,请与我们联系

3 个答案:

答案 0 :(得分:20)

我和UIPageViewController有类似的问题。经过一些初步的研究,它似乎确实是一个错误。我设法解决这个问题的唯一方法是将子视图固定到superview而不是底部布局指南。

Pin to superview image

一旦将子视图固定到超级视图,约束似乎就会得到尊重。

希望这有帮助。

答案 1 :(得分:3)

如果您使用的是自动布局,请尝试取消选中"扩展边缘 - >在底栏下"在Interface Builder中设置TabBarController及其所有ViewControllers。

答案 2 :(得分:1)

我通过将tabbar半透明设置为No

解决了我的问题
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.tabBarController.tabBar.translucent = NO;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.tabBarController.tabBar.translucent = self.isTabBarTranslucent;
}