为啥单击 SwiftUI 中的列表项后列表视图项变为灰色?

Posted

技术标签:

【中文标题】为啥单击 SwiftUI 中的列表项后列表视图项变为灰色?【英文标题】:why list view items become gray after click the list items in SwiftUI?为什么单击 SwiftUI 中的列表项后列表视图项变为灰色? 【发布时间】:2021-07-12 19:14:30 【问题描述】:

我在 SwiftUI 中有列表项,当我单击列表项时,当我返回列表视图菜单时它保持灰色。有什么解决办法吗?

DarkMenuView:

struct DarkMenuView: View 
    @AppStorage("isDarkMode") private var isDarkMode = false
    
    var body: some View 
        VStack
            Picker("Mode" , selection: $isDarkMode) 
                Text("Light")
                    .tag(false)
                
                Text("Dark")
                    .tag(true)
            .pickerStyle(SegmentedPickerStyle())
            .padding()
            List(0..<5, id: \.self)  num in
                NavigationLink(destination: Text("\(num)")) 
                Text("\(num)")
                    
                
                    
            
        .navigationTitle("Dark Menu")
        .onAppear() 
                    print("DarkMenuView.onAppear()")
                
    

截图:

【问题讨论】:

【参考方案1】:

ios-15 中运行良好。您可以尝试将“.isDetailLink(false)”添加到 NavigationLinks。

【讨论】:

tnx 这么多,我这样更新“ List(0.. 【参考方案2】:

您可以通过将选择样式设为“无”来实现此目的

.onAppear 
    UITableViewCell.appearance().selectionStyle = .none

【讨论】:

tnx 这么多,但仍然是同样的问题。 @Sas13 将此代码放入 View init() 我在 UIKit 中使用了很多次,但对于 SwiftUI Picker 视图却不起作用。

以上是关于为啥单击 SwiftUI 中的列表项后列表视图项变为灰色?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:如何让列表视图中的图像与列表项的操作不同?

检索数据表单数据库后列表视图不更新

过滤器搜索后列表视图中的复选框更改位置

为啥 SwiftUI 模态视图在此处更新父变量(附代码)

mfc 菜单项变灰

SwiftUI如何将列表项重构为子视图