为什么viewdidlayoutsubviews会多次调用?
我在Swift上开发iOS通用应用程序,使用自动布局并仅支持肖像。
我发现多次调用UIViewController#viewdidlayoutsubviews
。 相反, viewDidLoad
只在启动MyApp的UIViewController
调用一次。
为什么viewdidlayoutsubviews
多次调用? 每个UIView
( UIButtons
, UITextFields
等)的约束将按顺序执行?
任何信息将不胜感激。
LoadView
只被称为一个:当需要加载视图时。
但是,在任何已调用setNeedsLayout
或setNeedsDisplayInRect
视图上, LayoutSubviews
每次运行循环调用一次 – 这包括每次将子视图添加到视图,滚动,resize等时。
有关更多信息,请参阅此链接。 它使用Objective-C,但信息仍然存在。
最好的办法,这对我很有帮助 – 就是养成为你不确定的方法添加日志或打印语句的习惯
我用这个 – >
print("Hello From \(NSStringFromSelector(#function))")
或者如果在View子类中
Swift.print("Hello From \(NSStringFromSelector(#function))")
它将在调用方法时打印该方法。