设置字体需要覆盖 sizeToFit() 的大小 Swift

Setting font requires size that overrides sizeToFit() Swift

我正在制作标签,并尝试将字体设置为 "Avenir",如下所示:

    let usernameLabel: UILabel
    usernameLabel = UILabel(frame: CGRect(x: 20, y: third * screenHeight + sixth * screenHeight, width: third * screenWidth, height: 30))
    usernameLabel.text = "Username"
    usernameLabel.font = UIFont(name: "Avenir", size: 30) // Where I set the font
    usernameLabel.sizeToFit()
    usernameLabel.textColor = UIColor.gray()
    self.view.addSubview(usernameLabel)

但是我希望使用 usernameLabel.sizeToFit() 动态调整大小,但这没有效果,因为我必须在设置字体时设置大小,如果我尽量不使用大小选项,它 returns 一个错误。

听起来您想缩放字体以适合框架大小。

所以替换:

usernameLabel.sizeToFit()  // Modify the frame to fit the label

与:

usernameLabel.adjustsFontSizeToFitWidth = true // Modify the font size to fit the frame

你可以这样试试,

let str = "your string" as NSString

    if let font = UIFont(name: "Arial", size: 30) {

        let size  = str.sizeWithAttributes([NSFontAttributeName : font])

        label.frame = CGRectMake(x, y, size.width, height)
        label.text = "your string"
    }