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))
    }
}

0 ответов

Другие вопросы по тегам