gpt4 book ai didi

ios - Swift:viewDidLayoutSubviews 是什么意思?

转载 作者:搜寻专家 更新时间:2023-11-01 05:49:06 26 4
gpt4 key购买 nike

我在 viewDidLayoutSubviews 下有代码,目的是在开始时使图像透明(alpha = 0),然后使用 viewDidAppear 下的代码慢慢淡入(进入 alpha = 1) >。另外,我有一个按钮,按下时会更改自己的标签文本。

但是,当按下按钮并且标签发生变化时,图像(我在 viewDidLayoutSubviews 下指定的图像)也会消失。我认为这是因为 viewDidLayoutSubviews 下的代码被调用了吗?

我的问题是:

1)viewDidLayoutSubviews是什么意思?为什么在按钮标签更改时调用它?简单/概括地说,什么是 setNeedsLayoutsetNeedsDisplayInRect

2) 那么使用 viewWillAppear 会更好吗?

这里有 2 个类似的问题,但我对它们的理解还不够:

1) viewDidLayoutSubviews is called when label changes (xcode) (swift)

2) Why viewdidlayoutsubviews call multiple times?

最佳答案

顾名思义,viewDidLayoutSubviews 在您的 viewController 的 View 刚刚完成布局时被调用,您可以假设此时您的 View 处于正确的位置根据您的 autolayout 约束放置/frame。假设您的 view 在该方法被调用之前有它们的最终 frame,您不应该执行任何操作:例如,如果您尝试 aView setFrame: 在你的 viewDidLoad 它可能会失败/没有效果,因为 autolayout 在布局阶段改变了它的 frame 。因此,如果您确实需要更改其框架,则应在 viewDidLayoutSubviews

中/之后调用 setFrame:

简而言之,如果您关心的是 imageimageView 的 alpha 值,viewDidLayoutSubviews 可能不是正确的地方。 viewDidAppear 似乎更适合这个。 viewDidAppear 非常简单:当 View 出现在屏幕上时,它会被调用。

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

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