代码之家  ›  专栏  ›  技术社区  ›  shingo.nakanishi

没有VStack就没有错误。有没有我不需要写VStack的情况?

  •  0
  • shingo.nakanishi  · 技术社区  · 5 年前

    我尝试了以下方法,但没有出错。

    import SwiftUI
    
    struct ContentView: View {
      var body: some View {
        Text("A")
        Text("B")
      }
    }
    

    我认为网络中的所有示例都是用于垂直对齐的 VStack .

    我觉得如果我不使用 VStack . 这种书写方式行吗?

    如果我不使用 alignment spacing 属于 VStack ,我能用这个款式吗?

    Xcode:Version 12.4,模拟器:iOS14。4.

    0 回复  |  直到 5 年前
        1
  •  1
  •   aheze But I'm Not A Wrapper Class    5 年前

    Asperi commented ,可以省略 VStack .但是在那里 一个“陷阱”:当使用预览时,每个视图都会有自己的设备。据我所知,这是唯一不同的地方。

    struct ContentView: View {
        var body: some View {
            Text("A")
            Text("B")
        }
    }
    
    struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ContentView()
        }
    }
    

    结果:

    2 phones, first shows A, second shows B
        2
  •  0
  •   The Girl who Codes    5 年前

    没有必要在视图生成器中使用VStack。当您特别希望垂直对齐视图时,需要使用它,否则视图生成器具有默认对齐方式。

        3
  •  0
  •   swiftPunk Alexander    5 年前

    当你返回一个自定义 View ,SwiftUI会回来 VStack { CustomView() } 默认情况下是在保险范围内,因为这意味着 @ViewBuilder 你的 CustomView() 最多允许有10个可渲染 some View 看法 在它的 body 而且至少是1。此外,还可以在以cusom代码返回之前显式更改它。

    但是当你回来的时候 一些看法 ,SwiftUI只需要一个可渲染视图类型,它可以是 VStack , HStack , Circle , Text 或者等等。

    所以回到你的问题,你是在试图回答一个问题 看法 一些看法 ,则不需要VStack,只需要自定义间距或对齐。