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

Posted

技术标签:

【中文标题】设置字体需要覆盖 sizeToFit() Swift 的大小【英文标题】:Setting font requires size that overrides sizeToFit() Swift 【发布时间】:2016-12-12 18:37:12 【问题描述】:

我正在制作一个标签,并尝试将字体设置为“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() 动态调整大小,但这没有效果,因为我必须在设置字体时设置大小,如果我尝试不使用大小选项,它会返回错误.

【问题讨论】:

试试 [usernameLabel setAdjustsFontSizeToFitWidth:YES]; 【参考方案1】:

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

所以替换:

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

与:

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

【讨论】:

【参考方案2】:

你可以试试这样的,

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"
    

【讨论】:

以上是关于设置字体需要覆盖 sizeToFit() Swift 的大小的主要内容,如果未能解决你的问题,请参考以下文章

为啥此代码中需要“sizeToFit”调用?

SizeToFit() 不能与 \n 一起正常工作?

UIButton + 斜体字体 = 剪裁

uilabel sizetofit 不起作用

如何以编程方式在 UILabel 上设置 sizeToFit 宽度和高度?

Microsoft Access - 覆盖最大字体大小?