SwiftUİ: Bir LazyVGrid doldurmak için bir işlev nasıl çağırılır

0

Soru

Dikey bir öğe ızgarası oluşturduğum Swiftui'de (ilerledikçe öğreniyorum) bazı kodlar üzerinde çalışıyorum (Bu, bu sorunun amaçları için büyük ölçüde basitleştirilmiştir):

let col1 = GridItem(alignment: .leading)
let col2 = GridItem(alignment: .trailing)

LazyVGrid(columns: [col1, col2]) {
    Text("C1")
    Text("C1")
    Text("C2")
    Text("C2")
}

Bu yüzden böyle bir şey alıyorum:

+----+----+
| C1 | C1 |
+----+----+
| C2 | C2 |
+----+----+

Şimdi kodumda başka şeyler yapıyorum, bu yüzden kodumun böyle bir şeye benzemesi için bir işlev çıkarmak istiyorum:

let col1 = GridItem(alignment: .leading)
let col2 = GridItem(alignment: .trailing)

LazyVGrid(columns: [col1, col2]) {
    row("C1")
    row("C2")
}

func row(text: String) -> ???? {
    Text(text)
    Text(text)
}

Ama bunu yapmak için ne kadar zor görmek için buluyorum. İşlev bir dizi döndürüyor mu? yoksa Swift'in inşaatçılarının burada kullanabileceğim bir yönü var mı? Bir dizi denedim ama LazyVGrid'ın yapısı beğenmedi.

swiftui
2021-11-23 14:44:00
1

En iyi cevabı

3

Araştırma@ViewBuilder nitelik. Bu, işlevin geçtiğiniz kapanış gibi davranmasını sağlar LazyVGrid ve birçok SwiftUİ Manzarası.

@ViewBuilder
func row(text: String) -> some View {
    Text(text)
    Text(text)
}
2021-11-23 15:17:52

Elbette. Teşekkür ederim.
drekka

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................