我正在尝试在SwiftUI项目中使用SF舍入字体,您将如何设置它?
我已经尝试弄乱.font()了,但是它不起作用(我无法将其设置为这种圆形字体)
答案 0 :(得分:8)
我知道问题与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
}
答案 1 :(得分:1)
Text("Your Text").font(.system(.body, design: .rounded))
答案 2 :(得分:1)
如果有人需要,可以将@ 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)
}
}
答案 3 :(得分:0)
以这种方式对ValueError: id_vars must be a list of tuples when columns are a MultiIndex
中的Text
对象起作用:
SwiftUI
答案 4 :(得分:0)
我想添加一个额外的用例:如果您想在文本字段之类的圆形SF字体上应用自定义字体粗细,同时仍保持动态字体缩放,则可以执行以下操作:>
TextField("test", $test)
.font(Font.system(.largeTitle, design: .rounded).weight(.heavy))
这是必需的,因为不能直接在.fontWeight()
上调用TextField
(至少从iOS 13开始)。