İçeriğe geç

SwiftUI ile GeometryReader kullanımı

Merhabalar bu yazımda SwiftUI ile birlikte Layout düzenleme işleminde kullanılan GeometryReader hakkında bilgi vereceğim.

Bildiğimiz gibi SwiftUI içerisinde AutoLayout sistemi bulunmamakta. Yapıları Fonksiyonel programlama yapısında kullandığımız için nesnenin direkt olarak frame değerini alıp kullanamıyoruz. Bu işlem için bulunduğu ContentView frame değerini elde edebileceğimiz GeometryReader adlı bir fonksiyon yazılmış. Bu sayede frame elde edip, layout işlemlerinde farklı diziliş ve kullanımlar gerçekleştirebiliyoruz.

Kullanımını aşağıda görebilirsiniz.

struct CustomView:View {
    var body: some View {
        GeometryReader { geo in
            VStack(spacing: 0) {
                HStack(spacing: 0) {
                    Rectangle()
                        .frame(width: geo.size.width / 2, height: 150, alignment: .leading)
                        .foregroundColor(.orange)
                    Rectangle()
                        .frame(width: geo.size.width / 2, height: 150, alignment: .leading)
                        .foregroundColor(.red)
                }
                Rectangle()
                    .frame(width: geo.size.width, height: 150, alignment: .center)
                    .foregroundColor(.blue)
                Rectangle()
                    .frame(width: geo.size.width, height: geo.size.height, alignment: .center)
                    .foregroundColor(.green)
            }
            Spacer()
        }
    }
}

 

 

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