swift 如何将一个项目与HStack中的其他项目精确地保持在HStack的中心

xwbd5t1u  于 2022-12-26  发布在  Swift
关注(0)|答案(1)|浏览(123)

我在HStack中有两个项目。我希望其中一个完全水平居中,另一个在左侧(对齐方式为.leading)。下面是我到目前为止的代码:

HStack {
            Text("1")
                .frame(alignment: .leading)
            
            Text("Hello")
                .frame(alignment: .center)
        }

我已经知道.overlay方法是有效的。但是,我仍然希望Text(“Hello”)知道Text(“1”)的位置,这样如果Text(“Hello”)是一个更长的字符串,它就知道不要覆盖Text(“1”),这正是使用.overlay函数时发生的事情。所以我想知道是否有其他解决方案。

hmmo2u0o

hmmo2u0o1#

你可以在HStack里面添加一个隐藏的Text视图,它和你的左对齐文本视图沿着Spacer有相同的内容。

HStack {
    Text("1")
    Spacer()
    Text("Good Morning, Hello World. This is long message")
        .multilineTextAlignment(.center)
    Spacer()
    Text("1") // Set the same content as left aligned text view
        .hidden()
 }
 .padding(.horizontal)

Preview

相关问题