İçeriğe geç

SwiftUI ile Custom @ViewBuilder kullanımı

Merhabalar bu yazımda SwiftUI ile birlikte @ViewBuilder kullanarak kendimize özgü View blokları oluşturma işlemini göstereceğim.

SwiftUI ile birlikte HStack, VStack yapısına benzer bir yapı kullanarak kendi Custom yapımızı yazabiliriz ve bu işlem SwiftUI ile etkili ve bilinmesi gereken bir konu.

struct ContentView: View {
    var body: some View {
        HStack{
            Text("Hello")
            Text("World")
        }
    }
}

Basit bir HStack yapısını inceleyelim.

@inlinable public init(
    alignment: VerticalAlignment = .center,
    spacing: CGFloat? = nil,
    @ViewBuilder content: () -> Content
)

Buradaki @ViewBuilder ön eki dikkatinizi çekmiştir. Bu yapı ile birlikte HStack gövdesi içerisinde View yapıları eklenip, geri döndürülmekte. Yukardaki yapı HStack<TupleView<(Text, Text)>> olmakta.

Bizde @ViewBuilder kullanarak dilediğimiz gibi custom view container yazabiliriz.

Aşağıda yazdığım basit örneği inceleyebilirsiniz.

struct TextContainerView<Content: View>: View {
    
    let content: Content
    
    init(@ViewBuilder content: () ->  Content) {
        self.content = content()
    }
    
    var body: some View {
        content
            .foregroundColor(.red)
            .font(.headline)
            .padding()
    }
}
struct ContentView: View {
    var body: some View {
        TextContainerView {
            Text("Hello :)")
        }
    }
}

 

 

 

Tarih:SwiftUI

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2020 Kenan Atmaca