8

iOS 13中的viewdidlayoutsubviews中进行了一些更改,这导致它在 View Controller 的生命周期后期被调用,一旦它完成了第一次调用(在更改帧上)。这在应用程序中产生了一些奇怪的效果。

我观察到的是,在 iOS13 更改框架之前不会调用viewdidlayoutsubviews,而在新的 iOS 13 中它会被调用。

这是Apple的某种新功能还是一些错误?关于如何阻止这种行为的任何建议?

4

1 回答 1

1

我只为UIViewController将作为容器视图控制器的子级添加的问题面临这个问题。设备未旋转 - 这些只是在UIViewController初始添加到层次结构时将调用的方法:

iOS 12:

  1. viewDidLayoutSubviews
  2. viewDidAppear

iOS 13:

  1. viewDidAppear
  2. viewDidLayoutSubviews

对我来说,这不是一项功能,因此viewDidLayoutSubviews在之后调用是没有意义viewDidAppear的(如果设备没有旋转)。看起来像 iOS 13 上的错误。

于 2019-11-08T09:50:34.407 回答