将文本与屏幕一侧对齐 (SwiftUI)

tex*_*009 3 screen alignment frame swift swiftui

我正在使用 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")
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

Asp*_*eri 6

对文本使用框架对齐就足够了,根据用户的不同,可以有条件地就地更改,例如

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 !!
Run Code Online (Sandbox Code Playgroud)