Archivio per Categoria non categorizzato

SwiftUI TableView ListView example sample code project

Secondo me SwiftUI è una pietra miliare assoluta nello sviluppo di software. Certamente ci vuole tempo per abituarsi a questo nuovo modo di sviluppare, ma il tempo che si risparmia su ulteriori progetti può essere ben investito. Qui trovate un semplice esempio di SwiftUI TableView. Il progetto campione può essere scaricato e utilizzato liberamente. Il progetto non contiene volutamente di più, in modo che le funzioni essenziali contribuiscano alla comprensione.

Download XCode Sample Project.

E’ abbastanza impressionante come poche righe di codice si possa creare una TableView / ListView con SwiftUI. Basta creare un nuovo progetto e assicurarsi che SwiftUI sia selezionato come interfaccia utente.

SwiftUI Interace selektieren

Naturalmente sono ancora necessarie 3 immagini per questo esempio, che sono anche incluse nel progetto di esempio.

Assets für die Bilder in der Liste

Il codice effettivo del progetto.

import SwiftUI

struct ContentView: View {
    var oListArray: [oListenEntries] = testData
    var body: some View {
        List(oListArray) { item in
            Image(item.imageName).resizable().frame(width: 32.0, height: 20.0)
            VStack(alignment: .leading){
                Text(item.make)
                Text(item.model)
                    .font(.subheadline)
                    .foregroundColor(Color.gray)
            }
        }
    }

    struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ContentView(oListArray: testData)
        }
    }
}

Ecco il codice per l’array sottostante. Per questo ho creato una vista SwiftUI con il nome oListEntries.swift.

import SwiftUI

struct oListenEntries : Identifiable {
    var id = UUID()
    var make: String;
    var model: String;
    var imageName: String { return make }
}

let testData = [
    oListenEntries(make: "Flaschenhalter", model: "für Balkon oder Pool"),
    oListenEntries(make: "Pooladapter", model: "32 mm auf 12 mm"),
    oListenEntries(make: "Sektglashalter", model: "schwimmend")
]