Swift中使用font.withSize无法改变UILabel的字体大小

7

我在项目中改变字体大小时遇到了问题,所以我创建了一个playground。无论我把font.withSize属性放在哪里,模拟器都不会反映出字体大小的变化。

import UIKit
import PlaygroundSupport

    class MyViewController : UIViewController {
        override func loadView() {
            let view = UIView()
            view.backgroundColor = .white

            let label = UILabel()
            label.font.withSize(80)
            label.frame = CGRect(x: 150, y: 200, width: 200, height: 20)
            label.text = "Hello Mom!"
            label.textColor = .black



            view.addSubview(label)
            self.view = view
        }
    }
2个回答

25

withSize(_:) 不会修改字体本身。它会返回一个新的具有相同属性但是大小不同的字体,你需要将标签的字体指定为这个新的字体:

withSize(_:) 不會修改字型本身。它會回傳一個具有與所呼叫字型相同屬性但大小不同的新字型,您需要將標籤的字型指定為此新字型:

label.font = label.font.withSize(80)

4

无法设置UIFont的大小。

UIFont.withSize()是一个初始化器,它将返回一个具有与原始对象相同特性但字体大小指定的新UIFont对象。

因此,您需要为标签分配一个具有正确大小的新字体。对于您的例子,您可以使用:

label.font = label.font.withSize(80)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接