0Pricing
Swift Academy · Lekcja

GeometryReader dla układów adaptacyjnych

Odczytywanie geometrii rodzica w celu budowania proporcjonalnych interfejsów dopasowujących się do urządzenia.

GeometryReader dla układów adaptacyjnych to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Wprowadzenie

`GeometryReader` odczytuje rozmiar dostępny od rodzica, dzięki czemu można tworzyć układy proporcjonalne do wymiarów ekranu lub kontenera.

Podstawowe użycie

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

Właściwości GeometryProxy

`GeometryProxy` udostępnia: • `size: CGSize` — dostępną szerokość i wysokość • `safeAreaInsets: EdgeInsets` — bezpieczny obszar systemu • `frame(in:)` — ramkę w określonej przestrzeni współrzędnych

Proporcjonalne ustalanie rozmiaru

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

Przestrzenie współrzędnych

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

Bezpieczny obszar

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

Efekt przewijania paralaksy

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

Klucze preferencji do komunikacji układu

```swift struct HeightKey: PreferenceKey { static var defaultValue: CGFloat = 0 static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) { value = max(value, nextValue()) } } ``` Służą do przekazywania rozmiarów widoków potomnych w górę hierarchii widoków.

Kiedy unikać GeometryReader

`GeometryReader` domyślnie wypełnia całą dostępną przestrzeń — użyty bez rozwagi może zakłócić układ. Jeśli to możliwe, należy używać `.frame(maxWidth:.infinity)` i elastycznych stosów.

Alternatywa: protokół Layout

W Swift 5.7+ wprowadzono protokół `Layout`, który umożliwia tworzenie w pełni niestandardowych algorytmów układu bez narzutu związanego z GeometryReader.

Szybkie sprawdzenie

Co zawiera `GeometryProxy.size`?

Podsumowanie

Najważniejsze informacje: • `GeometryReader { geo in }` odczytuje rozmiar oferowany przez rodzica • `geo.size` — szerokość i wysokość; `geo.safeAreaInsets` — marginesy bezpiecznego obszaru systemu • `frame(in:)` — położenie w nazwanej lub globalnej przestrzeni współrzędnych • Używaj PreferenceKeys do przekazywania rozmiarów w górę hierarchii • Jeśli to możliwe, wybieraj elastyczne układy zamiast GeometryReader Kurs ukończony! Następny temat: przepływ danych w SwiftUI.

Często zadawane pytania

Czy lekcja „GeometryReader dla układów adaptacyjnych” jest bezpłatna?

Tak — pełny tekst „GeometryReader dla układów adaptacyjnych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „GeometryReader dla układów adaptacyjnych”?

Odczytywanie geometrii rodzica w celu budowania proporcjonalnych interfejsów dopasowujących się do urządzenia. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „GeometryReader dla układów adaptacyjnych”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy VStack, HStack i ZStack
  2. LazyVGrid i LazyHGrid
  3. Modyfikatory Spacer, Padding i Frame
  4. GeometryReader dla układów adaptacyjnych
← Powrót do Swift Academy