gpt4 book ai didi

objective-c - 在 -viewWillLayoutSubviews 中调用的方法莫名其妙地运行了两次

转载 作者:太空狗 更新时间:2023-10-30 03:22:02 28 4
gpt4 key购买 nike

我在详细 View Controller 中有以下代码:

- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
[self configureView];
}

当我在 -configureView 的第一行使用断点转到此 View Controller 时,似乎 [self configureView] 被调用了两次。然而:

  • 两次调用该方法时,堆栈如下所示:

stack

  • 当我在上面的代码中注释 [self configureView] 时,它被击中了零次。
  • 从两次相同的堆栈可以看出,-configureView 不会递归调用自身。
  • -configureView仅在上述代码中被调用。

最佳答案

来自 Apple's documentation :

The viewWillLayoutSubviews method is also called after the view is resized and positioned by its parent.

如果 viewWillLayoutSubviews 在 Controller View 上的 bounds 发生变化时被调用,则不能保证它只会被调用一次。例如,每当发生旋转时都会调用它。

您的 configureView 方法可能更好地从其他地方调用,也许在 viewWillAppearviewDidAppear 或者甚至是 BirdDetail 的自定义修改器中 项目根据 Hermann's suggestion .

关于objective-c - 在 -viewWillLayoutSubviews 中调用的方法莫名其妙地运行了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946623/

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