为什么多次调用viewDidLayoutSubviews? [英] Why is viewDidLayoutSubviews called multiple times?
问题描述
我正在使用Swift开发iOS通用应用程序,并使用自动布局功能,并且仅支持纵向模式.
I'm developing iOS Universal App with Swift, using auto layout and support only portrait.
我发现UIViewController.viewDidLayoutSubviews
被多次调用.相反,viewDidLoad
在启动MyApp的UIViewController
时仅被调用一次.
I found UIViewController.viewDidLayoutSubviews
called multiple times. Instead, viewDidLoad
is only called once on starting up MyApp's UIViewController
.
为什么多次调用viewDidLayoutSubviews
?是否会按顺序对每个UIView
(UIButtons
,UITextFields
等)进行约束?
Why is viewDidLayoutSubviews
called multiple times? Will constraints on each UIView
(UIButtons
,UITextFields
, etc..) be performed in order?
任何信息将不胜感激.
推荐答案
LoadView
仅调用一次:需要加载视图时.
LoadView
is only called once: when the view needs to be loaded.
LayoutSubviews
一次-这包括每当将子视图添加到视图,滚动,调整大小等时.
LayoutSubviews
, however, is called once per run loop on any view that has had setNeedsLayout
or setNeedsDisplayInRect
called on it - this includes whenever a subview has been added to the view, scrolling, resizing, etc.
这篇关于为什么多次调用viewDidLayoutSubviews?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!