如何使用.monospaced系统字体设计
How to use the .monospaced system font design
我正在尝试使用系统字体并应用等宽设计,但没有成功。我可以使用自定义字体函数并传入 Courier
和大小成功地使文本等宽,但这不是主意,因为字体大小是固定的。
VStack {
Text("lmlmlmlm 12345678")
Text("lmlmlmlm 12345678")
.font(Font.system(.body, design: .monospaced))
Text("lmlmlmlm 12345678")
.font(Font.custom("Courier", size: 18))
}
如何让系统字体与 .monospaced
设计一起使用?我认为这可能是 .monospaced
的错误,因为 .serif
选项确实按预期修改了文本。
似乎 .monospaced
字体仅在给定固定大小时适用:
Text("monospaced")
.font(.system(size: 14, design: .monospaced))
如果 body
等动态文本样式,这将不起作用。但正如您还提到的,它适用于其他字体,所以这可能是 Xcode 11.0 beta 中的一个错误,希望在下一个版本中得到修复。
更新:
此问题已通过 Xcode 11 beta 3 修复。以下代码现在有效:
Text("monospaced")
.font(.system(.body, design: .monospaced))
如果你只想让数字等宽,你可以尝试使用这样的东西:
Text("0123456789")
.font(Font.system(.body, design: .monospaced).monospacedDigit())
但是,这并不能避免 Xcode 11.0 beta 的明显错误。字母仍未呈现等宽。
我正在尝试使用系统字体并应用等宽设计,但没有成功。我可以使用自定义字体函数并传入 Courier
和大小成功地使文本等宽,但这不是主意,因为字体大小是固定的。
VStack {
Text("lmlmlmlm 12345678")
Text("lmlmlmlm 12345678")
.font(Font.system(.body, design: .monospaced))
Text("lmlmlmlm 12345678")
.font(Font.custom("Courier", size: 18))
}
如何让系统字体与 .monospaced
设计一起使用?我认为这可能是 .monospaced
的错误,因为 .serif
选项确实按预期修改了文本。
似乎 .monospaced
字体仅在给定固定大小时适用:
Text("monospaced")
.font(.system(size: 14, design: .monospaced))
如果 body
等动态文本样式,这将不起作用。但正如您还提到的,它适用于其他字体,所以这可能是 Xcode 11.0 beta 中的一个错误,希望在下一个版本中得到修复。
更新:
此问题已通过 Xcode 11 beta 3 修复。以下代码现在有效:
Text("monospaced")
.font(.system(.body, design: .monospaced))
如果你只想让数字等宽,你可以尝试使用这样的东西:
Text("0123456789")
.font(Font.system(.body, design: .monospaced).monospacedDigit())
但是,这并不能避免 Xcode 11.0 beta 的明显错误。字母仍未呈现等宽。