如何在 SwiftUI NavigationLink 中移除不透明动画

san*_*.gs 3 navigationview swiftui navigationlink

点击 NavigationLink 时,它会略微降低不透明度。有没有办法禁用它。我尝试使用,.buttonStyle(PlainButtonStyle())但没有达到预期的效果。

它嵌入在滚动视图中(为了可定制性,优先于列表):

ScrollView {
    ForEach(items){ item in
        NavigationLink(destination: DetailView()){
            HStack{
                Text("title")
                Spacer()
                Image(systemName: "chevron.right")
            }
            .padding()
            .background(
                RoundedRectangle(cornerRadius: 10, style: continuous)
                    .foregroundColor(Color.gray)
            )
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Asp*_*eri 18

这是可能的解决方案。使用 Xcode 11.4 / iOS 13.4 测试

使用仅返回标签视图的自定义按钮样式(无高亮效果)

struct FlatLinkStyle: ButtonStyle {
    func makeBody(configuration: Configuration) -> some View {
        configuration.label
    }
}
Run Code Online (Sandbox Code Playgroud)

    NavigationLink(destination: DetailView()){
        HStack{
            Text("title")
            Spacer()
            Image(systemName: "chevron.right")
        }
        .padding()
    }.buttonStyle(FlatLinkStyle())     // << here !!
Run Code Online (Sandbox Code Playgroud)