Middle
SwiftUI-də matchedGeometryEffect nədir?
sobes.tech Süni İntellekt
AI-dan cavab
SwiftUI-də matchedGeometryEffect — bu modifier, görünüşlərin ölçüsü və mövqeyinin müxtəlif ierarxiyalar və ya konteynerlər arasında hərəkət edərkən hamar animasiya olunmasına imkan verir.
Əsas prinsiplər:
- İdentifikatorların uyğunlaşdırılması: Keçid zamanı animasiya etmək istədiyiniz görünüşlər üçün eyni
idgöstərin. - Mənbə və hədəf: Bu görünüşləri birləşdirən
namespace(ad məkanı) göstərin. - Avtomatik animasiya: SwiftUI avtomatik olaraq aralıq vəziyyətləri hesablayır və keçidi bir vəziyyətdən digərinə animasiya edir.
Tətbiq:
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 nümunədə, RoundedRectangle vəziyyətlər arasında keçərkən ölçüsü və rəngi dəyişir, matchedGeometryEffect ilə `