在 ios 7 中按比例给予每个约束是否会造成 UIView 失真?

Does giving each and every constraint proportionally create a UIView distortion in ios 7?

我在ios 7 中遇到了一个奇怪的问题。我使用故事板设计了一个控制器视图。我按比例给出了每一个约束。我所说的每一个实际上是指宽度和高度以及前导、尾随、顶部和底部约束。 它在 ios 8 中就像一个魅力。我的整个视图大小与屏幕大小成比例地减少和增加但是在 ios 7 中视图在出现后重新调整并且值与期望值。每次按下或显示我的控制器时,偏差值不固定,偏差的约束也不同。

我想是因为一切都按比例付出。 ios 7 和 ios 8 中的某些视图生命周期差异。

有没有人遇到过与 ios 7 类似的问题?

(我正在使用 XCode 6.1)

PS: 在过去的 3-4 天里,我确实进行了多次搜索和敲打自己的脑袋。所以请避免说 "search the net"。如果您知道,我请求您 post link,这对您有帮助。

您可以按照以下两个选项之一来避免应用程序的意外行为

  1. 对于所有 ios 版本,您必须使用没有大小 类 实现的自动布局。因为尺寸 类 在 ios 8 中可用,在旧版本中不可用。
  2. 如果您正在开发 ios 8 和 ios 7 的应用程序,您必须考虑大小 类 的选择,如以下问题的答案中所述。 Size Classes implementation to support iOS7,或者看这个 post Size Classes Backward Compatibility

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

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