extension UIFont.Weight {
static var w100: UIFont.Weight { .ultraLight }
static var w200: UIFont.Weight { .thin }
static var w300: UIFont.Weight { .light }
static var w400: UIFont.Weight { .regular }
static var w500: UIFont.Weight { .medium }
static var w600: UIFont.Weight { .semibold }
static var w700: UIFont.Weight { .bold }
static var w800: UIFont.Weight { .heavy }
static var w900: UIFont.Weight { .black }
}

WX20241216-220827@2x.png
进入figma的编辑模式,可以看到字重和iOS的API是完全匹配的
使用:
lazy var durationLabel: UILabel = {
let lab = UILabel()
lab.textColor = .white
lab.font = .systemFont(ofSize: 20, weight: .w700)
return lab
}()
为什么使用 extension
,而不是用全局常量?extension
对 UIFont.Weight
进行扩展,方通过.
属性
为什么不用class
修饰,而用static
?UIFont
类型虽然是class
,但是它的属性Weight
是struct
,所以要用static
.否则无法编译通过