Wie erstellt man ein Grid mit SwiftUI und LazyVGrid (iOS App Entwicklung, Swiftui & XCode)

von | Dez 22, 2022 | Allgemein | 0 Kommentare

Schlagwörter: SwiftUI

Inhaltsverzeichnis

Die Grid Funktionen sind man heute eigentlich fast überall, egal ob in einer App wie Instagram oder einer Webseite eines Fotografen – es ist auch egal ob es Bilder oder Texte beinhaltet. Eine Grid Funktion zeigt sehr platzsparend verschiedene Inhalte an und es ist sehr bequem das Ganze durchzuscrollen.

Heute möchte ich euch zeigen, wie man das in der iOS Entwicklung mit Swiftui programmieren kann. Ich bin seit vielen Jahren ein Fan und ein Hasser von dieser Sprache. Einerseits sind die Befehle oft sehr logisch ohne grossen Schnickschnack, aber andererseits verabscheue ich den übertriebenen Einsatz der {} oder () oder [] – ich find das absolut der pure HORROR 🙂 Aber auf mich hört man ja nicht.

Egal hier findet ihr nun meine Video Anleitung wo ich Schritt für Schritt euch versuchen zu erklären wie man so eine Grid Funktion erstellen könnte. Denkt daran es gibt soviele Möglichkeiten das hinzubekommen – mein Weg ist vielleicht nicht der Beste oder Schönste – aber er funktioniert 🙂

Video

Erklärung

Der pure Grid Befehl lautet so:

Mit der folgenden Zeile definiert ihr die Anzahl Kolonnen hier sinds 2 Stück. Bei 3 müsst ihr einfach am Ende nochmal ein GridItem() dazuschreiben (vergiss das Komma nicht)

1
let columns: [GridItem] = [GridItem(),GridItem()]

Danach verbindet man es mit dem eigentlichen Grid Befehl und verknüpft diese Zeile von Oben mit der von Unten.

1
2
3
LazyVGrid(columns: columns){
//der im grid anzuzeigende inhalt
}

Damit das ganze auch Scrollbar ist, müsst ihr natürlich noch alles in das

1
ScrollView{}

einpacken

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
let columns: [GridItem] = [GridItem(),GridItem()]
 
    var body: some View {
        ScrollView {
            VStack {
                LazyVGrid(columns: columns){
                    ForEach(1..<40){ index in
                        Rectangle()
                            .frame(height: 200)
                            .border(Color.yellow, width: 12)
                            .border(Color.red, width: 10)
                            .border(Color.green, width: 8)
                            .overlay(
                            Text("\(index)\n Eric Mächler \n Youtuber")
                                .foregroundColor(.white)
                                .multilineTextAlignment(.center)
 
                            )
 
                    }
                }
            }
            .padding()
        }
    }




0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress

Allgemein

Technik

Design

Konzept

WordPress Plugins

Interessantes

Vermarktung