gpt4 book ai didi

ios - 什么是 viewDidLayoutSubviews?

转载 作者:可可西里 更新时间:2023-11-01 04:08:39 26 4
gpt4 key购买 nike

我正在阅读 UIViewControllerviewDidLayoutSubviews 的描述:

Called to notify the view controller that its view has just laid out its subviews [...] However, this method being called does not indicate that the individual layouts of the view's subviews have been adjusted. Each subview is responsible for adjusting its own layout [...].

对我来说,这意味着:“当 subview 布局完成时调用,但实际上这不是真的”。那么 viewDidLayoutSubviews 背后到底是什么?

最佳答案

当 ViewControllers View 的边界发生变化时,此方法会在 subview 的位置和大小发生变化后被调用。

  1. 因此,这是我们在布局其 subview 之后但在屏幕上可见之前对 View 进行更改的机会。

  2. 任何必须根据边界进行的更改,我们可以在这里进行,而不是在 ViewDidLoad 或 ViewWillAppear 中进行。

  3. 当 ViewDidLoad 和 ViewWillAppear 时, View 的框架和边界是没有最终确定。因此,当 AutoLayout 完成修复 mainView 和它是 subview ,调用此方法。

当使用自动布局时,框架不会每次都调用 layoutSubviews。在这些情况下会调用它。

  • 旋转设备:仅在父 View (响应的 viewControllers 主视图)上调用 layoutSubview

  • 它自己的边界(不是框架)改变了。 (仅当新值不同(包括不同的来源)时,才认为边界已更改。)

  • 将 subview 添加到 View 或从 View 中删除。
  • 您的应用程序通过调用 View 的 setNeedsLayoutlayoutIfNeeded 方法强制进行布局。
  • 滚动 UIScrollView 会导致在 scrollView 及其父 View 上调用 layoutSubviews。

注意:对 viewDidLayoutSubviews 的调用还取决于各种因素,例如自动调整大小掩码、是否使用自动布局以及 View 是否在 View 层次结构中。

如需任何其他说明,请查看 When is layoutSubviews called?

关于ios - 什么是 viewDidLayoutSubviews?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40737164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com