iOS底部布局指南位置错误

时间:2014-11-10 08:06:31

标签: ios objective-c autolayout

Stackoverflow hive-mind!

我带着严重的头痛,无法解决的障碍来找你!

问题如下:

我有一个UIPageViewController,它有四个页面和两种类型的内容UIViewControllers - ContentViewController和UserAccessViewController。前三页只是三个内容不同的ContentViewControllers(不同的图像和文本)。最后一页是UserAccessViewController,它为用户登录GUI以进行SignIn或SignUp。对于UIScrollView类的UserAccessViewController的“主”UIView,也许值得注意。

ViewControllers上的所有控件都受限于底部布局指南作为起点。你可以把它想象成一个流动。最底层的控件被限制在底部布局指南中,下一个控件被限制在最底层,依此类推,等等。 (请参阅下面的“侧面注释”,了解为什么所有内容都受到底部约束而不考虑顶部布局指南)。

所以,我们已经解决了手头的问题。首先,这只发生在第四页,UserAccessViewController。

在iOS 8.1上,一切正常并且符合预期,但在iOS 7.1上,底部布局指南无法正确定位,因此会将所有内容从屏幕上删除(请记住,所有内容都限制在底部布局上方指南)。

iOS 8.1框架:

UIView of class _UILayoutGuide's frame : [0.00, 0.00] - [0.00, 20.00] - >最佳 UIView of class _UILayoutGuide's frame : [0.00, 538.00] - [0.00, 0.00] - > BOTTOM(DITTO!)

iOS 7.1框架:

UIView of class _UILayoutGuide's frame : [0.00, 0.00] - [0.00, 20.00] - >最佳 UIView of class _UILayoutGuide's frame : [0.00, 0.00] - [0.00, 0.00] - > BOTTOM(WTF?!)

我试图纠正这个问题:

  1. 完全删除约束,以查看可能的约束是否会以某种方式改变底部布局指南。 - >结果:消极。删除约束并没有改变任何东西。底部布局指南仍未正确定位。

  2. 就是这样!我不知道我能改变什么:(。

  3. 希望集体的蜂巢心灵能够认为我值得帮助!


    SIDE-NOTICE:如果您想知道我为什么要关注底部布局指南而不是顶部布局指南,原因在于,当控件被限制为顶部布局指南作为参考时,当在一个不是第一个页面的viewDidLoad中修改约束时,它会导致抽搐 - 控件会传送到位。我无法解决它,而不是使用底部布局指南而不是顶部布局指南。

1 个答案:

答案 0 :(得分:2)

  

这是有道理的,但UIScrollView必须限制在其中   根据该链接的超级视图 - 否则它无法正常工作。   如果不可能这样做,你需要重新设计,   不幸的是......不确定这个想法是否适用,但我经常提出   一个透明的,背景“大小调整视图”背后的一切   给定的容器。大小调整视图受限于容器,和   其他一切都受到限制。使处理更容易   某些类型的约束

答案是由安妮·迪金森提供的,所以我会用引用的答案将其标记为已解决。