ios - SwiftUI:如何更改列表所选项目的颜色

标签 ios swift swiftui ipados

iPadOS 在连接外部键盘时使用不同的选择颜色。但问题是它不会将文本颜色更改为白色,从而难以阅读:

Comparing the selection color with and without an external keyboard

默认情况下,带有 NavigationLink 的简单 List 会产生此行为:

var body: some View {
    List {
        ForEach(searchResults) { item in
            NavigationLink(destination: ContentDetailView(item: item)) {
                ListItemView(item: item)
            }
        }
    }
}

我试图通过在选中单元格时将所有 Text 颜色更改为白色来提高文本的易读性。但这不起作用,因为当没有连接外部键盘时,文本变得更加难以阅读。

有没有办法在连接外接键盘时更改选择颜色?或者可能会检测何时连接了外部键盘以手动更改此特定情况下的文本颜色?

最佳答案

您可以使用这一行在 View 的初始化中更改选择样式

UITableViewCell.appearance().selectionStyle = .none

然后在选择导航链接时编辑背景颜色

关于ios - SwiftUI:如何更改列表所选项目的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71664454/

相关文章:

swift - 是否可以从 SwiftUI 使用 ASWebAuthenticationSession ?

ios - 使用 Xcode 6.4 在 swift 中使用 GMSPlacesClient 时出错

iOS - 我的 heightForRowAtIndexPath 实现导致性能问题,为什么?

Swift MAC 应用程序在 IDA 修补后无法启动

ios - swift 4 : TimeInterval set to random number each time

数组内字符串的 SwiftUI 本地化

ios - 从 native 代码调用 JavaScript 函数

ios - 我如何在 Swift 中的 RunTIme 上创建或生成新实体

ios - 如何对齐 UILabel 框架底部的 UILabel 内的文本?

ios - SwiftUI:在预览中渲染一个对象,在设备上渲染另一个对象