对象在SwiftUI工作表中未对齐

问题描述 投票:0回答:1

我正在Swift Playground中使用工作表,我想将加号对齐屏幕的左上角,但是当我尝试运行下面的代码时,加号没有对齐,它只保留在屏幕的中心工作表。有没有办法解决这个问题?

免责声明:我正在使用SwiftUI和Swift Playground

struct SecondView : View {
    @Environment(\.presentationMode) var presentationMode
    @State var string: String
    var body: some View {
        VStack {
            Button(action: {
                self.presentationMode.wrappedValue.dismiss()
            }, label: {
                Image(systemName: "plus")
                    .resizable()
                    .frame(width: 30, height: 30, alignment: .leading)
            })
        }
    }
}
swift alignment swiftui swift-playground
1个回答
0
投票

在SwiftUI中,生成的父视图的范围通常由其内部的视图决定。在这种情况下,您的整体视图受Button(在VStack中)的约束,因此以任何方式对齐都不会在很大程度上限制(或根本不会)移动它。如果在最外面的视图周围绘制边框/背景,您会明白我的意思。

一种解决方案是使用Spacer()灵活地扩展内部视图以占用额外的可用空间。

var body: some View {
  VStack {
     HStack { 
       Button(...) // probably want to add some padding
       Spacer()
     }
     Spacer()
  }
} 

或者在使用关闭按钮的情况下,将其添加为叠加层。

© www.soinside.com 2019 - 2024. All rights reserved.