当视图出现时以编程方式定义 UILabel 的大小

Define the size of a UILabel programmatically when view appears

自动布局似乎覆盖了 'ViewDidLoad' 中的命令。

目标:我想以编程方式定义标签的大小以反映我的标签的重要性。我不希望标签适合文本的大小。我不希望标签的文本不适合标签的大小。

我在 Swift 和 Xcode 中编码 6.

当我在'ViewDidLoad'

中使用
        team1ScoreLabel.frame.size.width=400

没有效果。

当我将它复制并粘贴到按钮操作函数中时,它会根据我希望的标签大小调整大小。所以这行代码就OK了。

对我来说,这意味着自动布局约束不允许在 'ViewDidLoad' 方法中调整标签大小。 我在 'ViewDidAppear'

中尝试过但没有成功

知道如何在视图出现时调整标签大小吗? 我不想禁用自动布局,因为我经常使用它来处理其他约束。

当自动布局生效时,您无法通过更改框架来移动视图。当调用任何布局方法时,视图上的约束将根据它们的规则将视图移回。

正如 PaulW11 在他的评论中所说,您想创建约束并将它们连接到 IBOutlets,然后在代码中更改约束的值。请注意,viewDidLoad 可能为时过早,因为此时视图控制器的内容视图尚未针对屏幕的大小和方向进行调整。您可能想在 viewWillAppear 中进行调整。