Un Stack crea una estructura de tipo TupleView que puede manejar hasta 10 subvistas y, por ende, es la cantidad máxima de vistas que puede contener un stack.
Un Group agrupa varias vistas juntas para 1) impedir que pase el problema mencionado arriba y 2) aplicar estilos a varias vistas a la misma vez.
struct ContentView: View {
var body: some View {
VStack {
Group {
Text("Hola mundo 1")
Text("Hola mundo 2")
}.foregroundStyle(.red)
Group {
Text("Hola mundo 3")
Text("Hola mundo 4")
}
.foregroundStyle(.blue)
.font(.title)
}
}
}
Si una función retorna una sola vista (i.e. some View) y NO está marcada con @ViewBuilder, si en el interior hay una lógica condicional que puede retornar vistas de tipos diferentes, habrá un error, a no ser de que se envuelva esta lógica dentro de un Group.
struct ContentView: View {
let opcion1 = false
func makeView(flag: Bool) -> some View {
Group {
if flag {
Text("Hola")
} else {
// ❌ error si no se envuelve en Group
Image(systemName: "star")
}
}
}
var body: some View {
makeView(flag: opcion1)
}
}

Top comments (0)