Middle
matchedGeometryEffect nədir və onu SwiftUI-də necə istifadə etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
matchedGeometryEffect SwiftUI-də istifadə olunan bir modifierdir və bu, müxtəlif vəziyyətlər və ya görünüm hierarxiyaları arasında görünümün ölçüsü və mövqeyinin hamar animasiyasını təmin edir. Bu, hierarxiyanın müxtəlif hissələrindəki görünümlərin geometriyasını (ölçü və mövqe) sinxronlaşdırır və "uyğunlaşma" effektini yaradır.
İstifadə:
-
idvə animasiya sahəsinin təyin edilməsi:- Sinxronlaşdırılmalı olan bütün görünümlərə unikal
idtəyin edin vəmatchedGeometryEffectmodifierindən istifadə edin. namespace(ad məkanı) göstərin.namespacebirlikdə animasiya olunacaq görünümləri bağlayır. Adətən,@Namespace private var namespaceannotasiyası istifadə olunur.
- Sinxronlaşdırılmalı olan bütün görünümlərə unikal
-
Görünümlərə tətbiq:
- Hər bir iştirak edən görünümə
matchedGeometryEffecttətbiq edin və eyniidvənamespacegöstərin. - Görünümlərin görünürlüğünü və ya mövqeyini dəyişdirin, məsələn,
if/elseşərtlərindən və ya vəziyyəti dəyişdirərək. SwiftUI avtomatik olaraq keçidi animasiya edir.
- Hər bir iştirak edən görünümə
struct ContentView: View {
@Namespace private var animationNamespace // Ad məkanının elan olunması
@State private var isExpanded = false
var body: some View {
VStack {
if isExpanded {
RoundedRectangle(cornerRadius: 10)
.fill(Color.blue)
.matchedGeometryEffect(id: "myShape", in: animationNamespace) // id və namespace ilə tətbiq
.frame(width: 300, height: 200)
} else {
RoundedRectangle(cornerRadius: 10)
.fill(Color.red)
.matchedGeometryEffect(id: "myShape", in: animationNamespace) // eyni id və namespace ilə tətbiq
.frame(width: 50, height: 50)
}
Button("Toggle Size") {
withAnimation { // Yumuşaq keçid üçün withAnimation istifadə edin
isExpanded.toggle()
}
}
}
}
}
Əsas nöqtələr:
- Eyni
idvənamespaceuyğun görünüşlər üçün. - Dəyişikliklər animasiya blokunda olmalıdır (məsələn,
withAnimationilə). - Çətin keçidlər yaratmağa imkan verir.
- Ölçü və mövqeyə təsir edən müxtəlif modifierlər ilə istifadə edilə bilər (
frame,padding,offsetvə s.).
matchedGeometryEffect görünüşlərin çevrilmə animasiyalarını əl ilə hesablamadan və animasiya etmədən çox asanlaşdırır.