gpt4 book ai didi

ios - viewWillAppear 上的标签大小不正确

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:02:59 28 4
gpt4 key购买 nike

我有以下设置

  • 只有横向 View 的 XIB 文件。此 View 连接到我的 Controller
  • 此 View 上有一个标签连接到 IBOutlet UILabel* label
  • 这个标签是这样配置的(它占据了整个屏幕的宽度)。 enter image description here
  • 我覆盖了 viewWillAppear 并执行此操作(以获取标签的大小)。
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

CGRect rect = _labelTitleLand.frame;
}

奇怪的事情(我不明白)。当它以纵向(在 iPad 上)启动时返回 size = (width 768, height 21),这是正确的。

当它横向启动时,它返回 size = (width 741 height 21)。这很奇怪。我预计它将返回宽度 1024,横向高度 21。

我的印象是,在 viewWillAppear 的那一刻,所有控件的大小都已经计算好了。

更新 1

如果我检查 viewDidAppear 上的 labelTitleLand.frame,它会返回正确的结果。但是,我不喜欢这样,因为我想做一些影响 View 绘制方式的操作(基于此大小)。在这种情况下,如果我将在 viewDidAppear 上执行此操作,据我所知,将会有可见的重绘。

最佳答案

在您获得实际的最终帧之前,必须完成 View 层次结构的布局。

因此您应该检查 viewDidLayoutSubviews 中的框架,它仍然在实际绘制 View 层次结构之前。如果您需要在此处进行更改,您可以在不导致任何重绘的情况下进行。

viewWillAppear 为时过早,因为这是在您的自动调整大小掩码(和/或自动布局约束)发挥作用之前。

关于ios - viewWillAppear 上的标签大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18069308/

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