[英]Wrap Text Around a Variable Amount of Images in SwiftUI
想知道是否有人对让Text
组件在行首包装可变数量的Image
组件有任何想法。 我想要完成的是这样的:
其中第一行之后的所有文本行都应该在该图像下方内嵌,并且该行的开头可能有多个图像(假设最多为 3 个)。 这是我目前拥有的代码:
var body: some View {
VStack {
HStack(alignment: .center) {
BadgeImage(from: debugUrl)
Text("\(Text(message.user).foregroundColor(message.color)): \(message.text)")
}
Spacer()
}
.padding(.horizontal, 10)
}
其中BadgeImage
只是SwiftUI
的AsyncImage
的包装器,它只处理URL
object 创建(忽略VStack
和Spacer
就在那里)。
我知道我们可以使用 SwiftUI 将Image
插入到Text
中,但这无济于事,因为图像的数量是可变的,并且必须从 URL 中获取,所以我必须使用AsyncImage
。 手动实现异步逻辑让我不得不做类似Text("\(someStateVar) some text...")
之类的事情,但似乎 Swift 只允许在构建时进行图像插值,并且使用 state var 给我留下了字符串描述图像而不是文本中的实际Image
组件。
核心问题是:有没有办法在一行的开头使用可变数量的some View
组件来实现Text
wrapping,或者这是否必须使用CoreText
类的东西手动实现?
感谢@Fogmeister的提示! 只做Text(someImageVar) + Text("The text...)
这很好用。我现在得到了这样的东西:
var body: some View {
HStack(alignment: .bottom) {
content
}
.padding(.horizontal, 10)
.padding(.vertical, 1)
.onAppear(perform: onAppear)
}
而onAppear
逻辑只是运行一个异步Task
并最终执行content = content + Text(newlyLoadedImage)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.