我正在Swift上开发iOS通用应用程序,使用自动布局并仅支持肖像。
我发现多次调用UIViewController#viewdidlayoutsubviews
。相反,viewDidLoad
仅在启动MyApp的UIViewController
时调用一次。
为什么viewdidlayoutsubviews
多次拨打电话?每个UIView
(UIButtons
,UITextFields
等等)的约束将按顺序执行?
任何信息都将受到赞赏。
答案 0 :(得分:22)
LoadView
仅被称为一个:当需要加载视图时。
LayoutSubviews
在任何已调用setNeedsLayout
或setNeedsDisplayInRect
的视图上每个运行循环调用一次 - 这包括每次向视图添加子视图时,滚动,调整大小等。
答案 1 :(得分:1)
最好的办法,这对我很有帮助 - 就是养成为你不确定的方法添加日志或打印声明的习惯
我用这个 - >
print("Hello From \(NSStringFromSelector(#function))")
或者如果在View子类中
Swift.print("Hello From \(NSStringFromSelector(#function))")
它将在调用方法时打印该方法。