iOS 8中updateViewConstraints的行为更改

时间:2014-09-20 10:55:17

标签: objective-c autolayout ios8

我在iOS 8下测试我的应用程序时发现了一些小的图形故障:一些UIViews元素不在正确的位置,其他元素的大小不正确。

在第一步中,我使用了故事板,自动布局和约束。然后我以编程方式调整约束以完全适合设备'屏幕尺寸,使用updateViewConstraints

在iOS 7上完美但在iOS8上有一些故障如下图所示: ./Users/dominiquevial​​/Documents/Informatique/Dev/Novae Marathon / _log / captures / iOS8 - iPhone 6 / pause.png

经过调查,我发现了问题:updateViewConstraints未被调用。我不明白为什么,可能是由于一些优化......

纠正这个问题很简单:

  1. 使用viewWillLayoutSubviews代替updateViewConstraints
  2. 或在setNeedsUpdateConstraints
  3. 中添加对viewWillAppear的通话

    哪种方式最好?

1 个答案:

答案 0 :(得分:1)

取决于用户是否可以在视图出现后导致视图进入无效状态,如果是,则第一个选项。如果这是不可能的第二个。

您的应用所做的工作越少越好。