如何在 SwiftUI 中清除列表项上的默认突出显示灰色?

Posted

技术标签:

【中文标题】如何在 SwiftUI 中清除列表项上的默认突出显示灰色?【英文标题】:How can I clear default highlighted gray color on list item in SwiftUI? 【发布时间】:2020-03-31 13:18:06 【问题描述】:

我无法更改 List 项目的突出显示颜色,在 UIKit Id 中轻松更改 TableViewCellSelection 属性元素 DefaultNone .我找不到这样一个简单交互的解决方案,有什么我遗漏的吗?

谢谢。

编辑:我试过了,但没用。

NavigationLink(destination: DetailView(detail: self.viewModel.characters.results[index]))   

CharacterCell(character: self.viewModel.characters.results[index])
                                    .buttonStyle(PlainButtonStyle())


【问题讨论】:

这能回答你的问题吗? How to remove highlight on tap of List with SwiftUI? 不,没用。 :// 【参考方案1】:

将代码添加到 init()

   init() 
        // Set selected (onTapped) background color of cell.
        let color = UIView()
        color.backgroundColor = UIColor.red
        UITableViewCell.appearance().selectedBackgroundView = color
    

例如:

import SwiftUI

struct SomeView: View 

    init() 
        // Set selected (onTapped) background color of cell.
        let color = UIView()
        color.backgroundColor = UIColor.red
        UITableViewCell.appearance().selectedBackgroundView = color
    

    var body: some View 

        // Your List/ForEach code
        Text(/"Hello, World!")
    

我注意到 swiftUI 预览没有显示更改,但是在模拟器中或在设备上运行时您会看到效果。

在您的情况下,您将设置 UIColor.clear ,这应该会根据需要消除灰色。

【讨论】:

以上是关于如何在 SwiftUI 中清除列表项上的默认突出显示灰色?的主要内容,如果未能解决你的问题,请参考以下文章

列表元素上的 SwiftUI 清除背景

如何正确使用 SetMenuItemBitmaps 替换菜单项上的默认位图?

列表部分标题的 SwiftUI 2 清除背景

悬停列表项上的引导导航栏删除类活动,鼠标移出返回类活动

单击列表项上的按钮与整个项重叠

scss 列表项上的自定义项目符号