为什么我不能通过代码自动调整UILabel的文本,但可以通过IB进行?

问题描述 投票:0回答:1

场景:我只希望能够在每个目标设备的UILabel中放入一个字符串。也就是说,在一个iPad型号上,字符串被截断了。另一方面,事实并非如此。我怀疑该应用程序比IB更以代码为中心。因此,我希望能够以编程方式使用UILabel。

这是代码:

class ViewController: UIViewController {
    @IBOutlet var myLabel: UILabel!

    @IBAction func addMessageAction(_ sender: UIBarButtonItem) {
        let msg = "Mother had a feeling, I might be too appealing. But I can understand."
        myLabel.text = msg
        myLabel.numberOfLines = 0
        myLabel.adjustsFontForContentSizeCategory = true
        myLabel.sizeToFit()

        myLabel.lineBreakMode = .byTruncatingTail
        myLabel.minimumScaleFactor = 0.5
    }

    @IBAction func exitAction(_ sender: UIBarButtonItem) {
        exit(0)
    }
}

这是我按下“消息”按钮后的屏幕:enter image description here

这似乎只能与我在IB中设置UILabel属性一起使用。

为什么它不能通过代码工作?

ios swift uilabel autoresize
1个回答
0
投票

我尝试了您的代码,并且代码运行正常。是否有任何自动布局约束不匹配?

您可以对此做一件事,以更改字体大小以适合标签的宽度

myLabel.adjustsFontSizeToFitWidth = true
© www.soinside.com 2019 - 2024. All rights reserved.