0Pricing
Swift Academy · Aula

GeometryReader para layouts adaptáveis

Leia a geometria do elemento pai para criar interfaces proporcionais e adaptáveis ao dispositivo.

GeometryReader para layouts adaptáveis é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Boas-vindas

`GeometryReader` lê o tamanho disponível do pai, permitindo criar disposições proporcionais às dimensões da tela ou do contêiner.

Uso básico

```swift GeometryReader { geo in Text("Width: \(Int(geo.size.width))") .frame(width: geo.size.width * 0.8) } ```

Propriedades de GeometryProxy

`GeometryProxy` fornece: • `size: CGSize` — largura e altura disponíveis • `safeAreaInsets: EdgeInsets` — área segura do sistema • `frame(in:)` — quadro em um determinado espaço de coordenadas

Dimensionamento proporcional

```swift GeometryReader { geo in HStack(spacing: 0) { Color.blue.frame(width: geo.size.width * 0.6) Color.green } } ```

Espaços de coordenadas

```swift GeometryReader { outer in VStack { GeometryReader { inner in let f = inner.frame(in: .named("outer")) Text("y: \(Int(f.minY))") } } } .coordinateSpace(name: "outer") ```

Área segura

```swift GeometryReader { geo in VStack { Spacer() Text("Bottom safe: \(Int(geo.safeAreaInsets.bottom))") .padding(.bottom, geo.safeAreaInsets.bottom) } } ```

Efeito de rolagem paralaxe

```swift ScrollView { ForEach(items) { item in GeometryReader { geo in let offset = geo.frame(in: .global).minY Image(item.image).offset(y: offset * 0.3) } } } ```

Chaves de preferência para comunicação da disposição

```swift struct HeightKey: PreferenceKey { static var defaultValue: CGFloat = 0 static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) { value = max(value, nextValue()) } } ``` Use para comunicar os tamanhos das visualizações filhas à hierarquia de visualizações acima.

Quando evitar GeometryReader

`GeometryReader` por padrão preenche todo o espaço disponível — ele pode desorganizar as disposições se for usado sem cuidado. Quando possível, prefira `.frame(maxWidth:.infinity)` e pilhas flexíveis.

Alternativa: protocolo de disposição

O Swift 5.7+ introduziu o protocolo `Layout` para algoritmos de disposição totalmente personalizados, sem a sobrecarga de `GeometryReader`.

Verificação rápida

O que `GeometryProxy.size` contém?

Recapitulação

Principais conclusões: • `GeometryReader { geo in }` lê o tamanho oferecido pelo pai • `geo.size` — largura/altura; `geo.safeAreaInsets` — margens internas do sistema • `frame(in:)` — posição em um espaço de coordenadas nomeado ou global • Use PreferenceKeys para comunicar tamanhos para cima na hierarquia • Quando possível, prefira disposições flexíveis a GeometryReader Curso concluído! Próximo: fluxo de dados do SwiftUI.

Perguntas Frequentes

A aula “GeometryReader para layouts adaptáveis” é grátis?

Sim — o texto completo de “GeometryReader para layouts adaptáveis” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “GeometryReader para layouts adaptáveis”?

Leia a geometria do elemento pai para criar interfaces proporcionais e adaptáveis ao dispositivo. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “GeometryReader para layouts adaptáveis”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de VStack, HStack e ZStack
  2. LazyVGrid e LazyHGrid
  3. Modificadores Spacer, Padding e Frame
  4. GeometryReader para layouts adaptáveis
← Voltar para Swift Academy