如何在 SwiftUI 中使用 SF Rounded 字体?
How to use SF Rounded font in SwiftUI?
我想在我的 SwiftUI 项目中使用 SF 圆角字体,你会如何设置它?
我已经尝试过修改 .font() 但它不起作用(我无法将其设置为这种圆形字体)
Text("Your Text").font(.system(.body, design: .rounded))
我知道问题是关于 SwiftUI 的,但我认为包含 UIKit 答案可能会有所帮助。
let fontSize: CGFloat = 24
// Here we get San Francisco with the desired weight
let systemFont = UIFont.systemFont(ofSize: fontSize, weight: .regular)
// Will be SF Compact or standard SF in case of failure.
let font: UIFont
if let descriptor = systemFont.fontDescriptor.withDesign(.rounded) {
font = UIFont(descriptor: descriptor, size: fontSize)
} else {
font = systemFont
}
将@Pomme2Poule 的 UIKit 答案转换为函数以便于使用,以备不时之需。函数也使用动态类型,因此它会随字体大小缩放。
func roundedFont(ofSize style: UIFont.TextStyle, weight: UIFont.Weight) -> UIFont {
// Will be SF Compact or standard SF in case of failure.
let fontSize = UIFont.preferredFont(forTextStyle: style).pointSize
if let descriptor = UIFont.systemFont(ofSize: fontSize, weight: weight).fontDescriptor.withDesign(.rounded) {
return UIFont(descriptor: descriptor, size: fontSize)
} else {
return UIFont.preferredFont(forTextStyle: style)
}
}
在 SwiftUI
:
中的 Text
对象上这样做对我有用
.font(.system(size: 13.0, weight: .regular, design: .rounded))
我想添加一个额外的用例:如果您想将自定义字体粗细应用于文本字段之类的圆形 SF 字体,同时仍保持动态字体缩放,您可以执行以下操作:
TextField("test", $test)
.font(Font.system(.largeTitle, design: .rounded).weight(.heavy))
这是必需的,因为不能直接在 TextField
上调用 .fontWeight()
(至少从 iOS 13 开始是这样)。
我想在我的 SwiftUI 项目中使用 SF 圆角字体,你会如何设置它?
我已经尝试过修改 .font() 但它不起作用(我无法将其设置为这种圆形字体)
Text("Your Text").font(.system(.body, design: .rounded))
我知道问题是关于 SwiftUI 的,但我认为包含 UIKit 答案可能会有所帮助。
let fontSize: CGFloat = 24
// Here we get San Francisco with the desired weight
let systemFont = UIFont.systemFont(ofSize: fontSize, weight: .regular)
// Will be SF Compact or standard SF in case of failure.
let font: UIFont
if let descriptor = systemFont.fontDescriptor.withDesign(.rounded) {
font = UIFont(descriptor: descriptor, size: fontSize)
} else {
font = systemFont
}
将@Pomme2Poule 的 UIKit 答案转换为函数以便于使用,以备不时之需。函数也使用动态类型,因此它会随字体大小缩放。
func roundedFont(ofSize style: UIFont.TextStyle, weight: UIFont.Weight) -> UIFont {
// Will be SF Compact or standard SF in case of failure.
let fontSize = UIFont.preferredFont(forTextStyle: style).pointSize
if let descriptor = UIFont.systemFont(ofSize: fontSize, weight: weight).fontDescriptor.withDesign(.rounded) {
return UIFont(descriptor: descriptor, size: fontSize)
} else {
return UIFont.preferredFont(forTextStyle: style)
}
}
在 SwiftUI
:
Text
对象上这样做对我有用
.font(.system(size: 13.0, weight: .regular, design: .rounded))
我想添加一个额外的用例:如果您想将自定义字体粗细应用于文本字段之类的圆形 SF 字体,同时仍保持动态字体缩放,您可以执行以下操作:
TextField("test", $test)
.font(Font.system(.largeTitle, design: .rounded).weight(.heavy))
这是必需的,因为不能直接在 TextField
上调用 .fontWeight()
(至少从 iOS 13 开始是这样)。