swift - iOS 14、Swift UI 2 更改 NavigationLink 内所选列表项的背景颜色

标签 swift swiftui swiftui-list swiftui-navigationlink

NavigationLink 中选择列表项时,如何更改它的背景颜色?
它始终以蓝色突出显示(请参阅附加屏幕)。我试图改变 listRowBackgroundColor View 修饰符,但它不起作用。

NavigationView {
    
    List (templateModel.model.items) { item in
        
        NavigationLink(destination: DetailView(selectedCategory: item.name, dismiss: dismiss)
            .environmentObject(OrientationInfo())) {
             Text("Test")
                 .listRowBackground(Color.gray)
        }
        .background(Color.black)
        .buttonStyle(PlainButtonStyle())
        .listRowBackground(Color.gray)
    }    
    .background(Color.black) 
    .listStyle(InsetListStyle())
}
enter image description here

最佳答案

只需使用 .accentColor , 如下
enter image description here

List (templateModel.model.items) { item in

    // ... other content here

}
.accentColor(.gray)       // << here !!

关于swift - iOS 14、Swift UI 2 更改 NavigationLink 内所选列表项的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63977370/

相关文章:

ios - SwiftUI - 列表分隔符 : Unwanted inset at the start when non-Text component is used at the start of row

SwiftUI,为什么部分 View 没有刷新? @State 变量不更新

ios - Swift - segue 以编程方式第一次需要两秒钟来显示 View Controller

ios - 您可以自定义 SwiftUI 上下文菜单的激活突出显示颜色吗?

swiftui - UIViewRepresentable : "Modifying state during view update, this will cause undefined behavior"

ios - SwiftUI 中的 TabView 没有响应

swift - 列表中带有条件的 NavigationLink

arrays - 如何在函数或嵌套函数内使用 for-in 循环更改数组的值?

ios - 快速在 TableView 之间传递数据

swift - 获取 api 调用