为什么多次调用 viewDidLayoutSubviews?

Why is viewDidLayoutSubviews called multiple times?(为什么多次调用 viewDidLayoutSubviews?)
本文介绍了为什么多次调用 viewDidLayoutSubviews?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 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(UIButtonsUITextFields等)的约束会按顺序执行吗?

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 在任何调用了 setNeedsLayoutsetNeedsDisplayInRect 的视图上,每次运行循环都会调用一次 - 这包括任何时候视图中添加了子视图,可以滚动、调整大小等.

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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Why local notification is not firing for UNCalendarNotificationTrigger(为什么没有为UNCalendarNotificationTrigger触发本地通知)
iOS VoiceOver functionality changes with Bundle Identifier(IOS画外音功能随捆绑包标识符而变化)
tabbar middle tab out of tabbar corner(选项卡栏中间的选项卡角外)
Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
Dropbox Files.download does not start when number of files in folder is gt; 1000(当文件夹中的文件数为1000时,Dropbox Files.Download不会启动)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)