matchedGeometryEffect nədir və SwiftUI-də necə istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
SwiftUI-də matchedGeometryEffect, eyni vizual elementi fərqli düzənlərdə təmsil edən iki görünüm arasında hamar keçid animasiyası yaratmaq üçün istifadə olunur. Bu, bir vəziyyətdə görünümün geometrisini digər vəziyyətdəki görünümün geometrisi ilə bağlayır və SwiftUI-nin dəyişiklikləri avtomatik olaraq animasiya etməsinə imkan verir.
İstifadəsi, .matchedGeometryEffect modifikatorunun hər iki görünümə tətbiq olunması ilə həyata keçirilir. Bu modifikator üç parametr qəbul edir:
id: Görünümləri bağlamaq üçün unikal identifikator.in: İdentifikatorun qeydiyyata alındığı ad sahəsi (Namespace). Adətən,@Namespaceilə yaradılır.properties: Animasiya ediləcək geometrik xüsusiyyətlər (məsələn,.position,.size,.frame).
İstifadə nümunəsi:
struct ContentView: View {
@Namespace private var animation
@State private var isExpanded = false
var body: some View {
VStack {
if isExpanded {
Rectangle()
.fill(Color.blue)
.matchedGeometryEffect(id: "myShape", in: animation)
.frame(width: 200, height: 200)
.onTapGesture {
withAnimation {
isExpanded.toggle()
}
}
} else {
Rectangle()
.fill(Color.red)
.matchedGeometryEffect(id: "myShape", in: animation)
.frame(width: 50, height: 50)
.onTapGesture {
withAnimation {
isExpanded.toggle()
}
}
}
}
}
}
Bu nümunədə, .matchedGeometryEffect iki Rectangle-i eyni id ("myShape") və eyni ad sahəsində (animation) bağlayır. isExpanded dəyişdikdə, SwiftUI bu iki vəziyyət arasında keçidi animasiya edir və düzbucaqlının ölçüsünü və mövqeyini hamar dəyişikliklə göstərir.