在 SwiftUI 中组合多个文本粗细乍一看可能并不简单。如果您习惯使用 UIKit,您可能正在寻找支持NSAttributedString,您可以在其中为特定范围应用不同的文本样式。
SwiftUI 可以将不同的文本样式与内置的加号 (+) 运算符实现结合起来。多个文本视图合并为一个,如果使用得当,可以很好地包装。
带包装的 HStack
您可以将多个权重组合在单个文本视图中视为在网格类型的视图中显示多个关键字。搜索解决方案可能会将您带到此页面,该页面告诉您GeometryReader结合使用自定义对齐指南来模拟文本换行。
尽管该解决方案最终可能会奏效,但代码很复杂,而且调整大小可能并不总是按预期工作。
使用 UIViewRepresentable
最接近使用 an 的解决方案NSAttributedString是使用UIViewRepresentable将属性字符串实现桥接到 SwiftUI。如果您要将代码从 UIKit 迁移到 SwiftUI,这可能是您最快的解决方案,但它感觉不像原生 SwiftUI 代码。
ForEach 组合多个文本视图
最接近我发现最有效的解决方案是使用 aForEach迭代句子中的单词以将多个Text视图组合在HStack.
这种方法的缺点是我们最终会得到不相关的单独文本视图,