[英]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.