`matchedGeometryEffect` permite crearea de tranziții spectaculoase ‘hero animations’ între două componente grafice din stări diferite ale vederii (ex: expandarea unui card mic dintr-o listă într-un ecran complet de detaliu). SwiftUI calculează automat interpolarea poziției, mărimii și colțurilor rotunjite.
Animații Fluide de Tranziție Hero
Creează experiențe vizuale cinematografice native cu un minim de linii de cod.
struct HeroCardView: View {
@Namespace private var animationNamespace
@State private var isExpanded = false
var body: some View {
if !isExpanded {
RoundedRectangle(cornerRadius: 12)
.matchedGeometryEffect(id: "card", in: animationNamespace)
.frame(width: 150, height: 100)
.onTapGesture { withAnimation { isExpanded = true } }
} else {
RoundedRectangle(cornerRadius: 24)
.matchedGeometryEffect(id: "card", in: animationNamespace)
.frame(maxWidth: .infinity, maxHeight: 400)
.onTapGesture { withAnimation { isExpanded = false } }
}
}
}
Stăpânirea acestei funcționalități în Swift 6 asigură dezvoltarea unor aplicații native iOS și macOS performante, sigure la nivel de memorie și perfect integrate în ecosistemul modern Apple.
Întrebări & Exemple de Cod:
Animații Complexe de Tranziție cu matchedGeometryEffect în SwiftUIAi o nelămurire despre utilizarea comenzii
Animații Complexe de Tranziție cu matchedGeometryEffect în SwiftUIsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.