SwiftUI: matchedGeometryEffect не работает во время навигации
Я хотел бы перейти на другой экран и плавно анимировать мой вид в новом положении на новом экране (как это делает Hero). В этой статье предполагается, что это возможно. Однако это вообще не работает, я получаю обычную анимацию навигации (xcode 15.0 ios17):
struct ContentView: View {
var imageNames = ["circle", "cloud"]
@Namespace var n
var body: some View {
NavigationStack {
List {
ForEach(imageNames) { name in
NavigationLink {
ZStack {
Color.blue.opacity(0.3)
Image(systemName: name)
.resizable()
.frame(width: 200, height: 200)
.matchedGeometryEffect(id: name, in: n)
}
} label: {
Image(systemName: name)
.resizable()
.frame(width: 50, height: 50)
.padding()
.matchedGeometryEffect(id: name, in: n)
}
}
}
}
}
}
extension String: Identifiable {
public var id: String { self }
}
Это баг или может я что-то упускаю?..
PS Я понимаю, что в данном случае мне не нужен настоящий второй экран, но реальный пример гораздо сложнее.