SwiftUI中无需UIFont转Font,能否创建Serif字体?
无需UIFont转换的SwiftUI衬线字体创建方法
当然有更简洁高效的方式,不用在UIFont和SwiftUI的Font之间来回转换。
从iOS 14、macOS 11开始,SwiftUI的Font原生支持直接指定字体设计风格,你可以直接用以下代码实现和原逻辑完全一致的效果:
let textSize = 20 return Font.system(size: textSize, design: .serif)
说明
- 这个方法会优先加载系统的衬线字体(也就是你原代码里的New York)
- 如果系统不支持衬线设计的系统字体,会自动回退到默认的系统字体,和你原代码的 fallback 逻辑完全匹配
- 全程不需要依赖UIKit的
UIFont类,省去了转换开销,代码更简洁直接
内容的提问来源于stack exchange,提问作者Cheok Yan Cheng
相关产品推荐
相关产品推荐

