gpt4 book ai didi

swift - 在 ViewDidLayoutSubviews 中定义的框架位置不正确

转载 作者:搜寻专家 更新时间:2023-11-01 07:08:18 24 4
gpt4 key购买 nike

我在 ovalView 中有一个 imageView,受自动布局限制。

viewDidLayoutSubviews() 中,我正在创建一个 UILabel

let label = UILabel(frame: imageView.frame)
imageView.superview?.addSubview(label)

标签的框架与 imageView 略微偏离中心。

但是,如果我将上面的代码移到 viewDidAppear() 中,标签会完美地居中于 imageView,但用户会看到不希望发生的变化。

如何将我的代码保存在 viewDidLayoutSubviews() 中并使其正常工作?

最佳答案

viewDidLayoutSubviews 被调用时,您不能假设您的 View 在该方法被调用之前有它们的最终帧。在你的情况下就是这样。当您调用 viewDidAppear 时,您的 View 已经绘制了它的所有框架并且您获得了正确的框架,这就是它适合您的原因。所以在 viewDidAppear 中调用它。

关于swift - 在 ViewDidLayoutSubviews 中定义的框架位置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46736153/

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