按下NavigationLink时隐藏箭头并突出显示

时间:2019-10-28 06:40:07

标签: ios swift swiftui

我在列表中有NavigationLink,当我单击它时,它会高亮显示项目。箭头也显示在右上角

NavigationLink(destination: ItemsListView()) {                    
                Text("Show all (\(body.count))")
                                 .font(.body)
                                 .foregroundColor(Color.red)
}

如何隐藏右上角的箭头,并同时禁用突出显示?

3 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作来设置单元格的选择样式。

  • 为包含您的List的结构创建一个初始化函数
  • 获取UITableViewCell的外观
  • selectionStyle设置为.none

下面是一些示例代码:

struct ContentView: View {

    init() {
        let appearance = UITableViewCell.appearance()
        appearance.selectionStyle = .none
        // appearance.accessoryType = .none
    }

    var body: some View {
        NavigationView {

            List(0..<5, id: \.self) { element in

                NavigationLink(destination: Text("\(element)")) {

                    Text("\(element)")

                }

            }
        }
    }
}

应该也可以通过将其设置为accessoryType来隐藏单元格的.none(请参见上面注释掉的代码),但是目前看来还不可能。

答案 1 :(得分:0)

查看此帖子:Is it possible to have multiple NavigationLinks per row in a List SwiftUI? Fabrice Leyne底部的答案帮助了我!

答案 2 :(得分:-1)

 .opacity(0.0) // just add this to the navigationLink

 NavigationLink(destination: Text("\(element)")) {Text("\(element)")} .opacity(0.0)