在ios7中按比例给出每个约束是否会创建一个UIView失真



我在ios 7中遇到了一个奇怪的问题。我用storyboard设计了一个控制器视图。我按比例给出了每个约束条件。我所说的每一个都是指宽度& &;高度以及领先、落后、顶部和底部约束。它在ios 8系统中发挥了神奇的作用。我的整个视图大小随着屏幕大小的比例而缩小和增加,但在ios 7中,视图在出现后会重新调整,并且值与期望值略有偏离。偏差值不是固定的,每次我的控制器被推送或呈现时,偏离的约束也会发生变化。

我认为这是因为给予一切的比例。有些人认为ios 7和ios 8的生命周期不同

有人在ios 7中遇到过类似的问题吗?

(我使用XCode 6.1)

PS:在过去的3-4天里,我真的一直在寻找和撞我的头。所以请不要说"上网搜索"。如果你知道一个链接,我希望你能把它贴出来。

最终解决了这个问题。(迟回答但总比不好)

无论我在哪里给出了与控制器视图成比例的高度或宽度我都在故事板中给出了一个固定的约束然后修改了viewDidLayoutSubviews中该约束出口的常量也就是说,我在那个方法中给出了比率。此问题仅在iOS7中出现,而在iOS8之后不会出现。在iOS7中,与控制器视图成比例的约束会产生问题。在viewDidLayoutSubviews中以编程方式给出比例值(即在视图和子视图被布局之后),UI行为正确。

您可以遵循以下两个选项之一来保存您自己的应用程序的意外行为

    你必须在所有ios版本中使用没有大小类实现的自动布局。因为size类在ios8中可用,而不是在旧版本中。
  1. 如果你正在开发ios 8和ios 7的应用程序,你必须考虑大小类的选择,如下面的问题的答案所讨论的。Size Classes实现支持iOS7,或者看这篇文章大小类向后兼容性

最新更新