diegoRodicio

Está documentación está a túa disposición sin ningún custo económico. Sen embargo, para a súa elaboración dedico moito tempo e recursos, polo que agradecería unha colaboración co que consideres oportuno. Gracias.

Engadir vistas

Pódense engadir vistas adicionais a unha vista principal colocándoas no body (liña 5), aínda que como veremos neste punto, non o faremos así xa que ocasiona un problema:

struct Content View: View {
  var body: some View {
    Text (Hello, world!")
    .padding()
    Text("Adiós amigo, adiós la luz!")
  }
}

Pero, agregar unha vista adicional como fixemos no exemplo, fai que Xcode cre unha segunda vista previa que conteña só o «Adiós amigo, adiós la luz!»


Stacks (contedores): Forma correcta de engadir vistas #

Para engadir correctamente vistas adicionais, esas vistas deben colocarse nunha vista de contedor.

Unha vista de contedor agrupa visualmente varias vistas (campos de texto, botóns,…)

Por tanto, o exemplo anterior podería modificarse para colocar as dúas vistas de texto nunha vista de pila ou contedor vertical (VStack) que, como suxire o nome, coloca as vistas verticalmente:

struct Content View: View {
  var body: some View {
    VStack{
      Text (Hello, world!")
      .padding()
      Text("Adiós amigo, adiós la luz!")
    }
  }
}


Máis info no seguinte tema: Tipos de view → Stacks (contedores)

Concatenación de vistas #

Unha excepción notable ao requisito de que se integren varias vistas nun contedor é que varias vistas de texto conten como unha soa vista cando se concatenan.

Por tanto, a seguinte é unha declaración de vista válida:

struct Content View: View {
  var body: some View {
      Text("Adiós amigo")+Text(",")+Text("adiós la luz!")
  }
}


return #

Nos exemplos anteriores a propiedade body non ten unha declaración de devolución (return).

Isto débese a que o peche contén unha soa expresión, polo que non fai falta unha declaración de devolución con return (NOTA: os peches están explicados no tema de Swift avanzado).

Con todo, tan pronto como se agreguen expresións adicionais ao peche, será necesario agregar unha declaración de devolución con return, por exemplo:

struct Content View: View {

  @State var arquivoAberto: bool = true
  
  var body: some View {
    
    if (arquivoAberto) { ... }
    
    return VStack {
      Text("Adiós amigo")+Text(",")+Text("adiós la luz!")
    }
  }
}

Share Your Valuable Opinions