Middle
SwiftUI'de matchedGeometryEffect nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
SwiftUI'deki matchedGeometryEffect, görünümlerin boyut ve konum değişikliklerini farklı hiyerarşiler veya konteynerler arasında hareket ederken pürüzsüzce animasyon yapmasını sağlayan bir modifikatördür.
Temel ilkeler:
- Kimlik eşleştirmesi: Geçiş sırasında animasyon yapmak istediğiniz görünümler için aynı
id'yi belirtirsiniz. - Kaynak ve hedef: Bu görünümleri birleştiren bir isim alanı (
namespace) belirtirsiniz. - Otomatik animasyon: SwiftUI otomatik olarak ara durumları hesaplar ve bir durumdan diğerine geçişi animasyonla gösterir.
Uygulama:
import SwiftUI
struct ContentView: View {
@Namespace private var namespace
@State private var isExpanded = false
var body: some View {
VStack {
if isExpanded {
RoundedRectangle(cornerRadius: 10)
.fill(Color.blue)
.matchedGeometryEffect(id: "box", in: namespace)
.frame(width: 200, height: 200)
.onTapGesture {
withAnimation {
isExpanded.toggle()
}
}
} else {
RoundedRectangle(cornerRadius: 5)
.fill(Color.red)
.matchedGeometryEffect(id: "box", in: namespace)
.frame(width: 50, height: 50)
.onTapGesture {
withAnimation {
isExpanded.toggle()
}
}
}
}
}
}
Bu örnekte, RoundedRectangle durumu isExpanded arasında geçerken boyut ve renk değiştirir, matchedGeometryEffect ile `