使 ScrollView 中的滚动条在 SwiftUI 中始终可见

Posted

技术标签:

【中文标题】使 ScrollView 中的滚动条在 SwiftUI 中始终可见【英文标题】:Make scrollbar in ScrollView always visible in SwiftUI 【发布时间】:2021-06-16 09:37:34 【问题描述】:

我正在用 SwiftUI 开发一个应用程序。 我有一个水平滚动视图,当用户点击它时会显示滚动条。由于这个应用程序更多地针对老年用户,我想不断地显示滚动条。我在 Apple 文档中找不到有关如何启用此功能的任何内容。有一个名为 showIndicators 的属性默认为 true,通过点击启用滚动条,但不会持续显示滚动条。这是我的 ScrollView 的简单代码 sn-p:

 var body: some View 
    ScrollView(.horizontal) 
        HStack(spacing: 4) 
        // other stuff in the scroll view
       
 

【问题讨论】:

您需要构建一个自定义指标,在滚动时上下移动。 【参考方案1】:

我认为您不能使滚动条永久可见。可能会解决您的问题的一件事是,当用户第一次被介绍到集合视图时,让滚动条闪烁一次,以通知他们该视图可以滚动。在 UIKit 我们有这个 UIScrollView 方法:

scrollView.flashScrollIndicators()

我不知道 SwiftUI 是否已经有类似的东西了。

【讨论】:

【参考方案2】:

经过一个小时的研究,我发现了这个帖子:Get the current position of ScrollView in SwiftUI?

它让我得到一个滚动视图的当前位置,然后我可以根据滚动视图的跟踪位置移动一个绘制的矩形(看起来像一个滚动条)。

【讨论】:

以上是关于使 ScrollView 中的滚动条在 SwiftUI 中始终可见的主要内容,如果未能解决你的问题,请参考以下文章

Swift - ScrollView 中的 StackView 不滚动

向上推键盘 Swift iOS 后,我的 Scrollview 不会一直向上滚动

UITableViewCell中的Swift ScrollView不滚动

Swift 在可滚动列表中添加项目

SWIFT - ScrollView 内的 WKWebView 中的 HTML 滚动事件

使滚动条在移动浏览器中可见