2014-10-01 54 views
15

所以我的问题与自动布局和底部布局指南有关。推后推板底部布局指南长度问题

这里的应用程序的设计:

的UITabBarController

^- TAB1:NavigationController与VC1作为根

^- VC2被推并隐藏的标签酒吧(全屏幕,顶部布局位于导航栏下,底部布局应该是最低像素)。

当VC2被推动时,底部布局指南的少量时间期间49个点的长度,然后它的0.

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

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

cast

这并不在iOS 7.x的发生(该应用程序支持7.0 +)...我敢肯定,这是一个iOS 8的错误,我一直在寻找一个解决办法,但我做不到找到解决这个问题的东西。

我试图解决这个问题,迫使导航控制器的视图布局在视图(将/ Did)LayoutSubviews,但它没有帮助。

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

预先感谢您的帮助,让我知道,如果你需要更多的解释

+0

感谢您的评论,但这是无关的问题。 – Romain 2014-10-06 21:35:52

+0

嗨,我已经下载了你的演示,并发现在你的视图控制器中有警告commin你设置的底部布局约束。你可以更具体地指出哪里需要标签栏高度正好在底部的标签? – 2014-10-08 17:46:14

+0

是的,它是一个错误,它发生在iOS 7.1中,当您到达MoreNavigationController并选择一个项目时,使用XCode 5.1.1。 – Borzh 2015-03-20 00:09:37

回答

20

我有一个类似的问题,像这样用UIPageViewController。经过一些初步研究后,它确实看起来是一个错误。我设法解决这个问题的唯一方法是将子视图固定到超级视图,而不是像这样的底部布局指南。

Pin to superview image

约束似乎一旦子视图被固定在上海华受到尊重。

希望这会有所帮助。

+2

将底部布局指南中的所有约束移至superview解决了该问题。在我真正的项目(不是附加的)中,我实际上尝试过这一点,但我只注意到我的视图的超视图也受限于底部布局指南......感谢您的评论和帮助! – Romain 2014-10-06 21:35:08

3

如果您使用的是自动布局,请尝试取消选中TabBarController及其在Interface Builder中的所有ViewController的“扩展边线 - >底部条线下”设置。

+0

解决了它! – horseshoe7 2015-04-14 14:51:35

1

我解决我的问题,通过设置的TabBar半透明如无

- (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; 
} 
+0

我不知道如何,但它的工作。我只是从故事板取消半透明属性,谢谢。 – 2017-09-20 05:13:58