使用 Swiftui 我正在創建一個聊天應用程式。我正在嘗試對齊文本,使其出現在螢屏的右側,然后來自其他用戶的訊息將出現在左側。我嘗試過使用 VStack 并使用前導和尾隨對齊,我也嘗試過僅對齊文本屬性。我有一個文本,然后是兩個按鈕。我希望垃圾桶按鈕和鉛筆按鈕都均勻地排列在右側。
VStack (alignment: .trailing ) {
HStack {
Text(data.text)
.padding(.bottom, 4)
.padding(.top, 4)
.padding(.leading, 8)
.padding(.trailing, 8)
.foregroundColor(Color.white)
.background(Color(UIColor.systemBlue))
.cornerRadius(20)
Button(action: {
self.showingPopover = true
}) {
Image(systemName: "pencil")
}
Button(action: {
viewModel.deleteData(id: data.id)
}) {
Image(systemName: "trash")
}
}
}
uj5u.com熱心網友回復:
對文本使用框架對齊就足夠了,根據用戶的不同,它可以有條件地就地更改,例如
Text(data.text)
.padding(.bottom, 4)
.padding(.top, 4)
.padding(.leading, 8)
.padding(.trailing, 8)
.foregroundColor(Color.white)
.background(Color(UIColor.systemBlue))
.cornerRadius(20)
.frame(maxWidth: .infinity, alignment: isMe ? .trailing : .leading) // << here !!
uj5u.com熱心網友回復:
您只需要Spacer()
在開頭添加一個HStack
:
VStack (alignment: .trailing ) {
HStack {
// This Spacer() will "push" the text to the right
Spacer()
Text(data.text)
.padding(.bottom, 4)
.padding(.top, 4)
.padding(.leading, 8)
.padding(.trailing, 8)
.foregroundColor(Color.white)
.background(Color(UIColor.systemBlue))
.cornerRadius(20)
Button(action: {
self.showingPopover = true
}) {
Image(systemName: "pencil")
}
Button(action: {
viewModel.deleteData(id: data.id)
}) {
Image(systemName: "trash")
}
}
}
同樣,對于回復,將 aSpacer()
放在末尾HStack
,也將文本推到左側。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/454092.html