在 SwiftUI 中的某些视图周围环绕文本
Posted
技术标签:
【中文标题】在 SwiftUI 中的某些视图周围环绕文本【英文标题】:Wrap text around some view in SwiftUI 【发布时间】:2020-10-23 05:27:31 【问题描述】:我放弃了。我想在某个视图周围环绕一个文本,但我找不到任何方法。
示例代码:
struct ListView: View
// actual text from @ObservedObject
var exText = "The statue of Laocoön and His Sons, also called the Laocoön Group (Italian: Gruppo del Laocoonte), has been one of the most famous ancient sculptures ever since it was excavated in Rome in 1506 and placed on public display in the Vatican,[2] where it remains. It is very likely the same statue praised in the highest terms by the main Roman writer on art, Pliny the Elder.[3] The figures are near life-size and the group is a little over 2 m (6 ft 7 in) in height, showing the *** priest Laocoön and his sons Antiphantes and Thymbraeus being attacked by sea serpents.[1]"
@State var thumbnail:UIImage = UIImage()
var body: some View
HStack
Image(uiImage: thumbnail)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 70.0, height: 70.0)
.background(Color.gray)
//.onReceive() to update the image from the @ObservedObject
Text(exText)
.lineLimit(nil)
如果我使用text(UIImage())
插入图像,它会显示图像的底部与文本的第一行一致。另外,这个方法不允许我自定义 UIImage 视图。
.mask
、.clipShape
、.compositingGroup
和 .contentShape
的所有方法都不起作用,因为它们只是剪切文本并且不让它环绕另一个视图。使用 UIKit,这可以通过使用 exclusionPaths
来实现,在 SwiftUI 中是否有与此等效的功能?
我用谷歌搜索并搜索了几个小时的文档,我只能找到这个问题here 也没有得到回答。快神们请回答我的祈祷!
【问题讨论】:
没有回答,因为文本只是不支持这样的功能。您必须手动进行此类布局,CoreText 会有所帮助。 【参考方案1】:您可以使用“+”运算符。把图片放进去:Text(Image(…))
.
Text("here is the star:") + Text(Image(systemName:"star")) + Text(", very easy.")
【讨论】:
我只检查了 systemName: ,它工作但无法添加像 .resizeable() 这样的修饰符以上是关于在 SwiftUI 中的某些视图周围环绕文本的主要内容,如果未能解决你的问题,请参考以下文章
将 SwiftUI 中的文本与背景属性相结合会产生错误,因为无法将“某些视图”类型的值转换为预期的参数类型“文本”?