如何在 SwiftUI 中组合文本粗细,自定义 SwiftUI 应用程序中的文本

本文介绍了如何在 SwiftUI 中优雅地组合不同粗细的文本,探讨了使用 HStack、UIViewRepresentable 和 ForEach 的方法,并提供了一种创建自定义 RichText 视图的方法,使得在多行文本中应用多种样式变得可能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 SwiftUI 中组合多个文本粗细乍一看可能并不简单。如果您习惯使用 UIKit,您可能正在寻找支持NSAttributedString,您可以在其中为特定范围应用不同的文本样式。

SwiftUI 可以将不同的文本样式与内置的加号 (+) 运算符实现结合起来。多个文本视图合并为一个,如果使用得当,可以很好地包装。

带包装的 HStack

您可以将多个权重组合在单个文本视图中视为在网格类型的视图中显示多个关键字。搜索解决方案可能会将您带到此页面,该页面告诉您GeometryReader结合使用自定义对齐指南来模拟文本换行。

尽管该解决方案最终可能会奏效,但代码很复杂,而且调整大小可能并不总是按预期工作。

使用 UIViewRepresentable

最接近使用 an 的解决方案NSAttributedString是使用UIViewRepresentable将属性字符串实现桥接到 SwiftUI。如果您要将代码从 UIKit 迁移到 SwiftUI,这可能是您最快的解决方案,但它感觉不像原生 SwiftUI 代码。

ForEach 组合多个文本视图

最接近我发现最有效的解决方案是使用 aForEach迭代句子中的单词以将多个Text视图组合在HStack.

这种方法的缺点是我们最终会得到不相关的单独文本视图,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值