Ios 如何使用.等距系统字体设计

Ios 如何使用.等距系统字体设计,ios,swiftui,Ios,Swiftui,我正试图使用系统字体,并应用单间距设计,没有运气。我可以使用自定义字体功能并传入Courier和一个大小,成功地使文本等距排列,但这并不理想,因为这样字体大小是固定的 VStack{ 文本(“LM12345678”) 文本(“LM12345678”) .font(字体系统(.body,设计:。等距)) 文本(“LM12345678”) .font(自定义字体(“信使”,大小:18)) } 如何使系统字体与.monospaced设计配合使用?我认为这可能是.monospaced的错误,因为.s

我正试图使用系统字体,并应用单间距设计,没有运气。我可以使用自定义字体功能并传入
Courier
和一个大小,成功地使文本等距排列,但这并不理想,因为这样字体大小是固定的

VStack{
文本(“LM12345678”)
文本(“LM12345678”)
.font(字体系统(.body,设计:。等距))
文本(“LM12345678”)
.font(自定义字体(“信使”,大小:18))
}

如何使系统字体与
.monospaced
设计配合使用?我认为这可能是
.monospaced
的错误,因为
.serif
选项确实会按预期修改文本。

似乎
。monospaced
字体仅在给定固定大小时适用:

Text("monospaced")
  .font(.system(size: 14, design: .monospaced))
如果使用动态文本样式(如
body
),则此选项不起作用。但正如您所提到的,它可以很好地用于其他字体,所以这可能是Xcode 11.0测试版中的一个bug,希望在下一版本中得到修复


更新: 此问题已通过Xcode 11 beta 3解决。下面的代码现在可以工作了:

Text("monospaced")
    .font(.system(.body, design: .monospaced))

如果您只想将数字设置为等距,可以尝试使用以下方法:

Text("0123456789")
    .font(Font.system(.body, design: .monospaced).monospacedDigit())

然而,这并不能避免Xcode 11.0测试版的明显缺陷。字母仍然不是单间距的。

也看到了这一点,并使用反馈助手FB6146888向苹果提交了一份错误报告