当前位置: 首页 > 面试题库 >

为什么多次调用viewDidLayoutSubviews?

琴正初
2023-03-14
问题内容

我正在使用Swift开发iOS通用应用程序,使用自动布局功能,并且仅支持纵向模式。

我发现UIViewController.viewDidLayoutSubviews打过多次。而是viewDidLoad在启动MyApp时仅被调用一次UIViewController

为什么要viewDidLayoutSubviews多次调用?是否会按顺序对每个UIViewUIButtonsUITextFields等)进行约束?

任何信息将不胜感激。


问题答案:

LoadView 仅被调用一次:需要加载视图时。

LayoutSubviews,但是,每个运行循环都会在已存在setNeedsLayout或已对其setNeedsDisplayInRect调用的任何视图上调用一次-
这包括每当将子视图添加到视图,滚动,调整大小等时。



 类似资料:
  • 问题内容: 关于的简单代码。是SessionScoped Bean,是RequestScoped Bean 内 我的问题是被叫很多。会告诉我们该方法在什么阶段被调用。首次加载页面时,请在阶段6-进行约 5次 呼叫。该页面上有一个,因此我在其中键入一些内容,然后单击(命令按钮)。然后在阶段1-> 4期间再呼叫 12次 。每个阶段调用此方法 3-4次 。然后,此属性的get 方法的setter方法(即

  • 我读在初始渲染时只被调用一次,但我看到它被渲染了多次。 似乎我创建了一个递归循环。 组件didMount调度动作来获取数据 一旦接收到数据,它就会触发成功操作,将数据存储在redux状态。 父反应组件连接到redux存储,并且具有mapStateToProps用于刚刚在上述步骤中更改的条目 父渲染子组件(通过变量编程选择) 子组件的组件didMount再次被调用 它消除了获取数据的操作 我想这就是

  • 问题内容: 这些天,我正在学习JSF + Facelets。我有一个BackingBean和Facelet xHTML页面。当我请求facelet页时(仅一次),backing-bean-method被多次调用。 这可能是什么原因? 我看不到什么特别的东西。提前致谢。 这是方面: 这是支持豆。方法getKunden被多次调用: 问题答案: Bean的getter在那里就 可以 从视图侧 访问 模型

  • 编辑:由于代码剪贴不会重现错误-这里有一个指向github repo的链接:(代码远未完成) https://github.com/altruios/clicker-game 我现在已经在两台计算机上运行了它——这两台计算机都有相同的行为,而代码剪报并没有显示出来。 因此,我正在构建一个clicker游戏来学习react,我不明白为什么这段代码会以这种方式运行: 在主应用程序中,我有以下功能: 那

  • 问题内容: 我的活动课在这里: 和相机预览类在这里: 但是,当我测试该类时,似乎首先调用onResume(),然后在1或2秒后再次调用。因此,相机必须再次刷新。如果我根本没有onResume(),则摄像头预览稳定,但是如果我从主屏幕或其他某个应用再次切换到该应用,则会崩溃。我发现onPause()不会影响任何一个。我的代码正确吗?我应该添加/删除哪些内容以使其不会再次刷新并且在应用切换后仍然不会崩