【发布时间】:2019-12-16 12:50:57
【问题描述】:
有没有办法构建一个应用自定义字体和 fontSize 的视图修改器,如下面的工作示例,并且在同一个修改器中也可以添加字距调整?
struct labelTextModifier: ViewModifier {
var fontSize: CGFloat
func body(content: Content) -> some View {
content
.font(.custom(Constants.defaultLabelFontSFProDisplayThin, size: fontSize))
}
}
extension View {
func applyLabelFont(size: CGFloat) -> some View {
return self.modifier(labelTextModifier(fontSize: size))
}
}
上面的效果很好,但是我不知道如何向修饰符添加字距调整
试过了
content
.kerning(4)
,但是没有用。
建议?
【问题讨论】:
-
.kerning是纯文本修饰符(与.font相反),您不能将其与通用ViewModifier一起使用。 -
@Asperi,感谢您的回答!所以唯一的方法就是将它应用到视图中的每个文本上,而不是使用通用的 ViewModifier,对吗?
-
对。使用您的自定义修饰符就像
Text("test").kerning(4).applyLabelFont(14.0)
标签: swift swiftui viewmodifier