有没有办法在SwiftUI列表中隐藏滚动指示器?

时间:2019-10-10 09:45:35

标签: swiftui swiftui-list

我想创建一个SwiftUI列表,但不显示滚动指示器。 ScrollView提供了showIndicators来执行此操作。怎么办?

3 个答案:

答案 0 :(得分:2)

您可以摆脱所有List的显示指示器,但具有UITableView的API。因为SwiftUI List在后​​台将UITableView用于iOS:

struct ContentView: View {

    init() {
        UITableView.appearance().showsVerticalScrollIndicator = false
    }


    var body: some View {
        List(0...100, id: \.self) { item  in
            Text("hey")
        }
    }
}

请注意,这将消除所有TableViewList的指示器。如果需要,您应该再次使其可见。

答案 1 :(得分:1)

List基本上在后台创建一个表视图(UpdateCoalescingTableView),并且该表视图是可滚动的。但是不幸的是,您无法使用SwiftUI中的scrollview属性。

您“可能”能够创建一个UIViewRepresentable,它可以遍历视图层次结构,直到找到滚动视图为止,但是我不建议这样做。

您还可以创建自己的滚动视图,在其中放置一个vstack,然后“伪造”一个列表视图,这可能是更安全的方法。

答案 2 :(得分:1)

实际上很容易做到这一点,而不会在接受的答案中出现任何外观问题。您只需要使用ScrollView初始化程序并将指标设置为false。

.snap-wrapper .snap-box.box_1 .navbar ul li a