SwiftUI MatchedGeometryEffect не работает, когда я перемещаюсь назад по позиции
У меня matchedGeo работает при движении вперед, но по какой-то причине он не работает, если я выбираю текст, перемещаясь назад. Я включил GIF-скриншот, чтобы вы могли увидеть проблему.
import SwiftUI
enum CapsuleNavTitles: String, CaseIterable {
case Discussion = "Discussion"
case About = "About"
case Memebers = "Members"
}
struct CapsuleNavAnimationComponent: View {
@State var currentNav: CapsuleNavTitles = .Discussion
@Namespace var animation
var body: some View {
CapsuleNav()
}
@ViewBuilder
func CapsuleNav() -> some View {
HStack() {
ForEach(CapsuleNavTitles.allCases, id: \.rawValue) { nav in
Text(nav.rawValue)
.padding(EdgeInsets(top: 9, leading: 17, bottom: 9, trailing: 17))
.background(currentNav == nav ? Capsule()
.fill(Color.buttonColor)
.matchedGeometryEffect(id: "CapsuleNavTitles", in: animation) : nil)
.foregroundColor(currentNav == nav ? .white : .black)
.onTapGesture {
withAnimation(.easeInOut) {
currentNav = nav
}
}
}
}
.background(Capsule().fill(Color.mainColor))
}
}