Middle
რა არის matchedGeometryEffect SwiftUI-ში?
sobes.tech AI
პასუხი AI-სგან
matchedGeometryEffect SwiftUIде — бул модификатор, ал көрүнүштөрдүн өлчөмүн жана жайгашкан жерин алардын ар башка иерархиялар же контейнерлер арасында которулганда жогорку деңгээлде анимациялоого мүмкүндүк берет.
Негизги принциптер:
- Идентификаторлорду салыштыруу: Сиз өтүү учурунда анимациялоону каалаган көрүнүштөр үчүн бирдей идентификаторду (
id) көрсөтөсүз. - Көз жана максат: Бул көрүнүштөрдү бириктирген аянтча (
namespace) көрсөтөсүз. - Автоматтык анимация: SwiftUI автоматтык түрдө аралык абалдарды эсептейт жана бир абалдан экинчи абалга өтүүнү анимациялайт.
Колдонуу:
import SwiftUI
структура ContentView: View {
@Namespace жеке айнымалуу var namespace
@State жеке айнымалуу isExpanded = false
var body: some View {
VStack {
эгер isExpanded {
RoundedRectangle(cornerRadius: 10)
.fill(Color.blue)
.matchedGeometryEffect(id: "box", in: namespace)
.frame(width: 200, height: 200)
.onTapGesture {
withAnimation {
isExpanded.toggle()
}
}
} башкача {
RoundedRectangle(cornerRadius: 5)
.fill(Color.red)
.matchedGeometryEffect(id: "box", in: namespace)
.frame(width: 50, height: 50)
.onTapGesture {
withAnimation {
isExpanded.toggle()
}
}
}
}
}
}
Бул мисалда RoundedRectangle өлчөмү жана түсү isExpanded абалына карап өзгөрөт, ал matchedGeometryEffect менен "box" идентификатору жана namespace аянтчасы аркылуу ишке ашырылат. SwiftUI автоматтык түрдө бул өзгөрүүнү анимациялайт.