Sobes.tech
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 id gö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ə `