在iOS 8下测试我的一个应用程序时,我注意到一些小的图形故障:某些UIViews元素放置在不合适的位置,另一些元素的尺寸不合适。

第一步,我使用 Storyboard ,自动布局和约束。然后,我使用updateViewConstraints以编程方式调整约束以使其完全适合设备的屏幕尺寸。

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

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

解决这个问题很容易:

  • 使用viewWillLayoutSubviews代替updateViewConstraints
  • 或在setNeedsUpdateConstraints中添加对viewWillAppear的调用

  • 最好的方法是哪一种?

    最佳答案

    取决于用户是否可以在 View 出现后使 View 进入无效状态,如果是,则是第一个选项。如果不可能,请第二个。

    您的应用程序要做的工作越少,效果越好。

    关于objective-c - iOS 8中updateViewConstraints的行为更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25948001/

    10-09 07:56