gpt4 book ai didi

ios - 使用 viewDidLayoutSubviews 时出现问题

转载 作者:行者123 更新时间:2023-12-01 17:50:20 29 4
gpt4 key购买 nike

我听说viewDidLayoutSubviews当我们使用约束时,这是更改布局的最佳位置。

所以我跳到viewDidLayoutSubviews
我创建了三个 UIViewsSubViewed他们在 SuperView 上。我没有提到框架计算的代码。

 [self.view addSubview:imgMiddleCircle];
[self.view addSubview:imgFirstCircle];
[self.view addSubview:imgLastCircle];

使用这 block 我正在添加这些圆圈。

现在,当我在 viewDidLayoutSubviews 中运行我的代码时我得到以下屏幕:

enter image description here

当我切换到 viewWillLayoutSubviews我在屏幕上看到了这个:

enter image description here

为什么我在 viewDidLayoutSubviews 中多了两个圈子即使我正在创建三个圆圈。

以及为什么在 viewWillLayout给出正确的输出。

最佳答案

您应该编码 viewDidLayoutSubviews称为多种类型。

理想情况下 addSubview:应该发生在像 viewDidLoad 这样的地方你确定它只被调用一次。

您可以创建一个标志来避免调用 addSubview:倍数类型(不是我个人的选择)

否则,请尝试将您的设置代码移至 viewDidLoad并在进行计算之前强制 View 呈现自身:

[yourView setNeedsLayout];

[yourView layoutIfNeeded];

关于ios - 使用 viewDidLayoutSubviews 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33145511/

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