SwiftUI VStack对齐错误?

最近我一直在SwiftUI中构建应用程序,而今天我注意到VStack Alignment有一些奇怪的行为。无论我使用哪种对齐方式,视图都不会在中心以外对齐。见下文:

VStack(alignment: .trailing,spacing: 0) {
    Text("Hello,World!")
}

SwiftUI VStack对齐错误?

VStack(alignment: .center,World!")
}

SwiftUI VStack对齐错误?

这是在预览和模拟器中执行的操作,我正在尝试将文本对齐到屏幕的右边缘。

完整代码:

import SwiftUI

struct DemoView: View {
    var body: some View {
        VStack(alignment: .center,spacing: 0) {
            Text("Hello,World!")
        }
    }
}

struct DemoView_Previews: PreviewProvider {
    static var previews: some View {
        DemoView()
    }

}
iCMS 回答:SwiftUI VStack对齐错误?

VStack(alignment:...)用于对齐子视图,但是您只有一个子视图,因此没有要对齐的

默认情况下,所有堆栈都紧紧容纳内容(只需将.border添加到测试VStack / s中,您会看到结果,因此没有空间可移动内容。

通过在堆栈中提供框架对齐以提供屏幕范围的区域,可以解决您的期望:

demo

VStack {
    Text("Hello,World!")
}.frame(maxWidth: .infinity,alignment: .trailing)

P.S。 SwiftUI仍然有很多错误,但这里没有:)

,

这可以用Spacer解决。

对齐方式领先

var body: some View {
        HStack {
            Text("Hello,World!")
            
            Spacer()
        }
    }

对齐尾部:

var body: some View {
        HStack {
            Spacer()
            
            Text("Hello,World!")
        }
    }
本文链接:https://www.f2er.com/1975353.html

大家都在问