在 ScrollView 中阻止向下滚动 - SwiftUI
Posted
技术标签:
【中文标题】在 ScrollView 中阻止向下滚动 - SwiftUI【英文标题】:Block scroll down in ScrollView - SwiftUI 【发布时间】:2020-08-08 21:56:50 【问题描述】:如何阻止向下滚动而只允许向上滚动以避免在滚动时看到顶部矩形上方的空白?
struct ContentView: View
var body: some View
GeometryReader geo in
ScrollView
Rectangle()
.frame(width: geo.size.width, height: 400)
.foregroundColor(.black)
Spacer()
【问题讨论】:
如果您担心空白,可以使用 ZStack 为滚动视图添加背景。 即使它很暗或有图像我只是不希望视图向下滚动 【参考方案1】:我假设您想避免弹跳,这是可能的方法(使用 Xcode 12 / ios 14 测试)
struct ContentView: View
var body: some View
GeometryReader geo in
ScrollView
Rectangle()
.frame(width: geo.size.width, height: 1800)
.foregroundColor(.black)
.background(ScrollViewConfigurator
$0?.bounces = false // << here !!
)
Spacer()
struct ScrollViewConfigurator: UIViewRepresentable
let configure: (UIScrollView?) -> ()
func makeUIView(context: Context) -> UIView
let view = UIView()
DispatchQueue.main.async
configure(view.enclosingScrollView())
return view
func updateUIView(_ uiView: UIView, context: Context)
注意:enclosingScrollView()
助手取自我在 How to scroll List programmatically in SwiftUI? 中的回答
【讨论】:
我会尽快尝试。我只是不明白我应该放什么而不是 enclosureScrollView以上是关于在 ScrollView 中阻止向下滚动 - SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章
Scrollview 不显示其内容的顶部而不在 iphone 应用程序中向下滚动
ScrollView(RecyclerView等)为什么会自动滚动原理分析,还有阻止自动滑动的解决方