【发布时间】:2021-03-03 17:35:19
【问题描述】:
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
extension ViewBuilder {
public static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>(_ c0: C0, _ c1: C1, _ c2: C2, _ c3: C3, _ c4: C4, _ c5: C5, _ c6: C6, _ c7: C7, _ c8: C8, _ c9: C9) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9)> where C0 : View, C1 : View, C2 : View, C3 : View, C4 : View, C5 : View, C6 : View, C7 : View, C8 : View, C9 : View
}
在源代码中,ViewBuilder 最大参数限制为 10 个。
【问题讨论】:
-
假设他们将其增加到 11,您会问“他们为什么将其限制为 11?”你不会吗?当您有超过十个视图时,您应该考虑将其中的一些提取为单独的视图。
-
是的......如果你想要超过 10 个,那么你可以在 VStack 或 HStack 中使用 Group
-
即使在一个构建器中有 10 个视图,代码也会变得非常复杂,编译器经常会拒绝它,所以通常,作为一种好的做法,我们使用更少的子视图。您拥有的视图越小,它们的编译速度就越快(并且通常编译)。所以我会说 ViewBuilder 中的 10 个视图绰绰有余。