首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有VStack就没有错误。有不需要写VStack的情况吗?

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

Stack Overflow用户
提问于 2021-08-20 10:40:32
回答 3查看 102关注 0票数 0

我试了一下,没有发现任何错误。

代码语言:javascript
运行
复制
import SwiftUI

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

我认为网络中所有垂直对齐的例子都使用VStack

我觉得如果不使用VStack,我就会出错。这种写作风格可以吗?

如果我不使用alignmentspacing of VStack,我可以使用这种样式吗?

Xcode: 12.4版本,模拟器: iOS14.4

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-20 19:41:11

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

代码语言:javascript
运行
复制
struct ContentView: View {
    var body: some View {
        Text("A")
        Text("B")
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

结果:

票数 1
EN

Stack Overflow用户

发布于 2021-08-20 11:11:19

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

票数 0
EN

Stack Overflow用户

发布于 2021-08-20 20:21:45

当您返回一个自定义View时,SwiftUI默认情况下会在掩护下返回VStack { CustomView() },因为它包含@ViewBuilder的含义,您的CustomView()允许在它的body中有最多10个可呈现的some ViewView,也可以至少有1。还可以在以缓冲代码返回之前显式地更改它。

但是当您返回some View时,SwiftUI只期望一个可呈现的视图类型,它可能是一个VStackHStackCircleText等等。

因此,回到您的问题,您正在尝试返回一个View,而不是some View,然后就不需要VStack了,只是您想要一些自定义的间隔或对齐。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68860939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档