Swiftui 在另一个视图中包装的文本下划线

Swiftui 在另一个视图中包装的文本下划线,swiftui,Swiftui,SwiftUI修饰符.underline()可用于为文本加下划线: Text("Hello").underline() 类似地,修饰符.font(…)可用于更改为文本字体: Text("A nice picture").font(.caption) .font(…)修饰符也适用于任何视图以及文本,因此您可以在组或HStack或您自己的视图结构上使用.font()。这样做将更改视图中文本所使用的字体。如果我查找.font(),我可以看到它是视图上的一个

SwiftUI修饰符
.underline()
可用于为文本加下划线:

Text("Hello").underline()
类似地,修饰符
.font(…)
可用于更改为文本字体:

Text("A nice picture").font(.caption)

.font(…)
修饰符也适用于任何
视图
以及
文本
,因此您可以在
HStack
或您自己的
视图
结构上使用
.font()
。这样做将更改
视图中
文本所使用的字体。如果我查找
.font()
,我可以看到它是
视图
上的一个扩展,因此这是有意义的,尽管看起来相当神奇

但是,
.underline()
修饰符不能(据我所知)用于任何
视图
,以使其中的
文本
带下划线。类似地,
删除线()
斜体()
以及许多其他
文本
修饰符也不可用。它们被定义为
文本
的扩展,因此只能处理这种类型

我想知道:

  • 是否有一个很好的解决方案,以便我可以在父视图上使用
    .underline()
    在其包含的
    文本
    子视图上使用下划线
  • 为什么SwiftUI现在是这样的

视图上没有下划线。这里有一个链接,解决方案是使用新的协议TextModifier扩展文本。这将抽象样式,但每个文本都需要自己的修改器。哎呀,没有一个内置的方法。也许您可以创建一个支持通过环境传递的文本样式的自定义
StyledText
视图