所以我的问题与自动布局和底部布局指南有关。
这是应用程序的设计:
的UITabBarController
^ - Tab1:以VC1为根的NavigationController
^ - 按下VC2并隐藏标签栏(全屏,顶部布局位于导航栏下方,底部布局应为最低像素)。
按下VC2时,底部布局指南在很短的时间内长度为49点,然后是0。
在此期间,限制在此底部指南的子视图位置不正确。
当指南正确地设置为0时(由导航控制器本身,我没有关于此的代码),子视图位置是完美的。
这不会发生在iOS 7.x上(该应用程序支持7.0 +)...我非常确定这是一个iOS 8错误,我正在寻找解决方法,但我找不到解决这个问题的东西。
我试图解决强制导航控制器查看布局视图(Will / Did)LayoutSubviews的问题,但它没有帮助。
我看到this post是相关的,但建议的解决方案不起作用。 以模态方式呈现VC2解决了这个问题,但这是不可接受的。
在此先感谢您的帮助,如果您需要更多解释,请与我们联系
答案 0 :(得分:20)
我和UIPageViewController有类似的问题。经过一些初步的研究,它似乎确实是一个错误。我设法解决这个问题的唯一方法是将子视图固定到superview而不是底部布局指南。
一旦将子视图固定到超级视图,约束似乎就会得到尊重。
希望这有帮助。
答案 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;
}