Middle
SwiftUI'da matchedGeometryEffect nima?
sobes.tech AI
AIdan javob
matchedGeometryEffect in SwiftUI — bu modifikator, u yordamida tasvirlarning o'lchami va holatini ularning turli ierarxiyalari yoki konteynerlar orasida harakatlanayotganda silliq animatsiya qilish mumkin.
Asosiy tamoyillar:
- Identifikatorlarni moslashtirish: Siz o'tish davomida animatsiya qilishni istagan tasvirlar uchun bir xil
idni ko'rsatasiz. - Manba va maqsad: Bu tasvirlarni birlashtiradigan
namespace(nomlar maydoni) ni belgilaysiz. - Avtomatik animatsiya: SwiftUI avtomatik ravishda o'rtacha holatlarni hisoblaydi va bir holatdan ikkinchisiga o'tishni animatsiya qiladi.
Qo'llanilishi:
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()
}
}
}
}
}
}
Ushbu misolda, RoundedRectangle isExpanded holatiga o'tishda o'lchami va rangi o'zgaradi, matchedGeometryEffect bilan `