swift 如何在视图中左对齐和中间对齐文本

fivyi3re  于 2022-12-21  发布在  Swift
关注(0)|答案(4)|浏览(190)

我有两篇经文:HStack中的文本("1")和文本("2")。我希望文本("1")位于ContentView的最左侧,文本("2")位于ContentView的水平中心。
下面是我的代码:

import SwiftUI

struct ContentView: View {
    
    var body: some View {
        HStack {
            Text("1")
                .multilineTextAlignment(.leading)
                .frame(
                    alignment: .leading
                )
            Text("2")
                .multilineTextAlignment(.center)
                .frame(
                    alignment: .center
                )
        }
        .frame(width: .infinity)
        
    }
}

当我运行这个程序时,文本("1")和文本("2")仍然在ContentView的水平中心,不知道我做错了什么。

rryofs0p

rryofs0p1#

请尝试以下代码:

HStack {
                  Text("1")
                      .multilineTextAlignment(.leading)
                  Text("2")
                      .multilineTextAlignment(.center)
                      .frame(minWidth: 0, maxWidth: .infinity)
              }
kcugc4gi

kcugc4gi2#

HStack中添加一个Spacer到每个文本后面。这将在左侧给予第一个文本,在中间显示第二个文本

HStack {
    Text("1")
        .multilineTextAlignment(.leading)
        .frame(alignment: .leading)
        .padding(.leading)

    Spacer()

    Text("2")
        .multilineTextAlignment(.center)
        .frame(alignment: .center)
        .padding(.trailing)

    Spacer()
}
js81xvg6

js81xvg63#

另一种方法是使用ZStack。第二个文本将始终精确居中。

ZStack {
    HStack {
        Text("1")
        Spacer()
    }
                            
    HStack {
        Spacer()
        Text("2")
        Spacer()
    }
}
.padding()
dluptydi

dluptydi4#

在这种情况下,您可以简单地使用Spacer,如下所示:

struct ContentView: View {

    var body: some View {
         HStack {
             Text("1")
          
             Spacer()
          
             Text("2")
          
             Spacer()
         }
     }
}

结果会是

相关问题