为什么viewdidlayoutsubviews会多次调用?

我在Swift上开发iOS通用应用程序,使用自动布局并仅支持肖像。

我发现多次调用UIViewController#viewdidlayoutsubviews 。 相反, viewDidLoad只在启动MyApp的UIViewController调用一次。

为什么viewdidlayoutsubviews多次调用? 每个UIViewUIButtonsUITextFields等)的约束将按顺序执行?

任何信息将不胜感激。

LoadView只被称为一个:当需要加载视图时。

但是,在任何已调用setNeedsLayoutsetNeedsDisplayInRect视图上, LayoutSubviews每次运行循环调用一次 – 这包括每次将子视图添加到视图,滚动,resize等时。

有关更多信息,请参阅此链接。 它使用Objective-C,但信息仍然存在。

最好的办法,这对我很有帮助 – 就是养成为你不确定的方法添加日志或打印语句的习惯

我用这个 – >

 print("Hello From \(NSStringFromSelector(#function))") 

或者如果在View子类中

 Swift.print("Hello From \(NSStringFromSelector(#function))") 

它将在调用方法时打印该方法。