Middle
Kas ir matchedGeometryEffect SwiftUI?
sobes.tech AI
Atbilde no AI
matchedGeometryEffect SwiftUI — tas modifikators, kas ļauj gludi animēt izmaiņas izmērā un pozīcijā, pārvietojoties starp dažādām hierarhijām vai konteineriem.
Galvenie principi:
- Identifikatoru saskaņošana: Norādiet vienu un to pašu identifikatoru (
id) vaizdiem, kurus vēlaties animēt pārejot. - Avots un mērķis: Norādiet nosaukumu telpu (
namespace), kas apvieno šos vaizdus. - Automātiska animācija: SwiftUI automātiski aprēķina starpposma stāvokļus un animē pāreju no viena stāvokļa uz otru.
Lietošana:
import SwiftUI
struktūra ContentView: View {
@Namespace private var namespace
@State private var isExpanded = false
var body: some View {
VStack {
ja ir izplests {
RoundedRectangle(cornerRadius: 10)
.fill(Color.blue)
.matchedGeometryEffect(id: "box", in: namespace)
.frame(width: 200, height: 200)
.onTapGesture {
arAnimāciju {
isExpanded.toggle()
}
}
} citādi {
RoundedRectangle(cornerRadius: 5)
.fill(Color.red)
.matchedGeometryEffect(id: "box", in: namespace)
.frame(width: 50, height: 50)
.onTapGesture {
arAnimāciju {
isExpanded.toggle()
}
}
}
}
}
}
Šajā piemērā RoundedRectangle maina izmēru un krāsu, pārslēdzoties starp stāvokļiem isExpanded, izmantojot matchedGeometryEffect ar identifikatoru "box" un nosaukumu telpu namespace. SwiftUI automātiski animē šīs izmaiņas.