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() } } }
İlk Yorumu Siz Yapın