gpt4 book ai didi

ios - 如何更改动态类型以使用不同的文本样式

转载 作者:可可西里 更新时间:2023-11-01 01:59:52 24 4
gpt4 key购买 nike

我想为我的应用程序中的所有文本使用动态类型。我用的字体是Apple的San Francisco
我不喜欢默认值,因为它们并没有真正使用 Bold 作为文本。

这是一个包含所有这些的列表:

Style         Weight      Point size    Leading Tracking
--------------------------------------------------------
Large Title Regular 34pt 41pt 11pt
Title 1 Regular 28pt 34pt 13pt
Title 2 Regular 22pt 28pt 16pt
Title 3 Regular 20pt 25pt 19pt
Headline Semi-Bold 17pt 22pt. -24pt
Body Regular 17pt 22pt. -24pt
Callout Regular 16pt 21pt. -20pt
Subhead Regular 15pt 20pt. -16pt
Footnote Regular 13pt 18pt. -6pt
Caption 1 Regular 12pt 16pt 0pt
Caption 2 Regular 11pt 13pt 6pt

那么有没有办法配置文本样式应该如何精确?

最佳答案

除了 preferredFont(forTextStyle:) 之外,使用动态类型获得不同权重的一种方法是使用其他 UIFont 属性和方法。

您可以将 pointSize 属性与 UIFont.systemFont(ofSize:weight:) 结合使用以获得不同的权重:

let title1Font = UIFont.preferredFont(forTextStyle: .title1)
let title1PointSize = title1Font.pointSize
let boldTitle1Font = UIFont.systemFont(ofSize: title1PointSize, weight: .bold)

您可以扩展 UIFont 以提供任何必要的便利。例如,如果您需要各种权重的 title1body 样式,您可以这样创建:

extension UIFont {

static var title1: UIFont {
return UIFont.preferredFont(forTextStyle: .title1)
}
static var body: UIFont {
return UIFont.preferredFont(forTextStyle: .body)
}

func with(weight: UIFont.Weight) -> UIFont {
return UIFont.systemFont(ofSize: pointSize, weight: weight)
}

}

然后,访问各种大小和字体就 super 简单了:

UIFont.title1.with(weight: .bold)
UIFont.body.with(weight: .semibold)
UIFont.body.with(weight: .light)
UIFont.title1 // normal weight

关于ios - 如何更改动态类型以使用不同的文本样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47577717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com