文本在视图中居中,而不是在视图后

时间:2020-08-13 20:33:00

标签: swift swiftui

为什么“ ...”不尾随?它应该始终位于屏幕右侧,而不是位于中心。

ZStack {
    HStack {
        Text("Good morning")
            .padding(.leading, 20.0)
            .font(.subheadline)
            .background(Color.yellow)
        Spacer()
    }
    HStack {
        Text("...")
            .foregroundColor(.blue)
            .frame(alignment: .trailing)
            .font(.title3)
            .multilineTextAlignment(.trailing)
    }
}

2 个答案:

答案 0 :(得分:1)

您需要另一个Spacer

ZStack {
    HStack {
        Text("Good morning")
            .padding(.leading, 20.0)
            .font(.subheadline)
            .background(Color.yellow)
        Spacer()
    }
    HStack {
        Spacer() // <- add here
        Text("...")
            .foregroundColor(.blue)
            // .frame(alignment: .trailing) // can be removed
            .multilineTextAlignment(.trailing)
    }
}

在Xcode 11.6,iOS 13.6上进行了测试。


您可以在此处了解有关.frame(alignment: .trailing)的更多信息:

答案 1 :(得分:1)

好吧,答案是删除ZStack并在中间添加分隔符...像这样!

HStack {
    Text("Good morning")
        .padding(.leading, 20.0)
        .font(.subheadline)
        .background(Color.yellow)
    Spacer()
    
    Text("...")
        .foregroundColor(.blue)
        .frame(alignment: .trailing)
        .font(.title3)
        .multilineTextAlignment(.trailing)
}

这篇文章对您有所帮助(在@ pawello2222的帮助下)

只要您认为间隔符变得合乎逻辑,它们实际上就是</span>