为什么我的 SwiftUI VStack 没有正确对齐?

时间:2020-12-23 04:44:40

标签: swift swiftui

无论内容如何,​​我都试图使我的 VStack 填充保持一致,并且在某些情况下似乎不起作用(就像 Scrollview 与中心对齐一样)。

理想情况下,无论屏幕上的内容如何,​​我都希望内边距保持一致。

例如这样(当填充不一致时):

Padding

Padding 2

这是使用的代码:

var body: some View {
        
        VStack {
            
            HStack{
                
                Button(action: {}) {
                    
                    Image(systemName: "arrow.backward")
                 
                }
                
                Spacer(minLength: 0)
                
                Button(action: {}) {
                    
                    Image(systemName: "bookmark")
                      
                }
            }
            .padding(.vertical, 10)
            
            ScrollView {
                
                VStack{
                    
                    HStack{
                        
                        VStack (alignment: .leading, spacing: 5) {
                            
                            Text("Today's Poem, \(currentDate)")
                               
                            
                            if let poem = fetch.poems.first {
                                
                                Text("\(poem.title)")
                                   
                                
                                Text("BY "+poem.author.uppercased())
                                   
                                
                                VStack (alignment: .leading) {
                                    
                                    ForEach(poem.lines, id: \.self) {
                                        Text($0)
                                            .multilineTextAlignment(.leading)
                                         
                                    }
                                    
                                }
                            
                                                        
                            } else {
                                Spacer()
                            }
                        }
                        
                    }
                    
                }
            }
            
            Button("Get Next Poem") { fetch.getPoem() }
            
        }
        .background(Color.white.ignoresSafeArea())
        .padding(.horizontal)
    }
}

有什么想法吗?提前致谢。

1 个答案:

答案 0 :(得分:0)

换最里面

VStack {

VStack(alignment: .leading) {