SwiftUI 你必须知道的10个子视图的限制

先来看看下面的代码

1、正常的代码,可以运行

struct ContentView: View {
    
    var body: some View {
        
            Group {
                Text("1")
                Text("2 ")
                Text("3 ")
                Text("4 ")
                Text("5 ")
                Text("6 ")
                Text("7 ")
                Text("8 ")
                Text("9 ")
                Text("10 ")
                //Text("11 ")
            }
    
    }
}

2、会提示编译错误的代码

struct ContentView: View {
    
    var body: some View {
        
            Group {
                Text("1")
                Text("2 ")
                Text("3 ")
                Text("4 ")
                Text("5 ")
                Text("6 ")
                Text("7 ")
                Text("8 ")
                Text("9 ")
                Text("10 ")
                Text("11 ")
            }
    
    }
}

build时会出现下面的错误

Argument passed to call that takes no arguments

真正的原因

xcode的提示实在是太莫名其妙了,我通过查看文档才发现。SwiftUI 的container是有数量限制,具体限制多少呢。文档里面没有写明(也可能是我们没有找到),但是文档下面的buildblock没有超过10的

SwiftUI 你必须知道的10个子视图的限制_第1张图片

后来我又google一下,果然有这个限制。

受影响的其他容器

下面的容器都是有10个对象的限制

  • VStack
  • HStack
  • ZStack
  • Group
  • List
  • 未来的容器

为什么有这个限制

我认为应该是apple不希望我们创建过于复杂的单页视图,希望我们尽快进行模块划分。

参考资料

更多SwiftUI教程和代码关注专栏

你可能感兴趣的:(ios,swift)