如何防止用户滚动超过某个点?

Posted

技术标签:

【中文标题】如何防止用户滚动超过某个点?【英文标题】:How can I prevent users from scrolling past a certain point? 【发布时间】:2021-10-18 14:11:53 【问题描述】:

我有一个 ScrollView,当我向上滚动时,屏幕上的内容会向下移动。但我想限制内容可以向下移动的距离。我不希望用户能够滚动到顶部的灰色矩形之外。换句话说,我不希望用户在向上滚动时看到灰色矩形上方的白色区域。如何在 SwiftUI 中实现这一点?

import SwiftUI

struct ScrollViewIssue: View 
    var body: some View 
        ScrollView 
            VStack 
                Rectangle()
                    .foregroundColor(.gray)
                    .frame(height: 200)
                
                Circle()
                    .frame(width: 300, height: 300)
                
                Circle()
                    .frame(width: 300, height: 300)
                
                Circle()
                    .frame(width: 300, height: 300)
                
                Circle()
                    .frame(width: 300, height: 300)
            
        .ignoresSafeArea()
    

【问题讨论】:

这可能会有所帮助:***.com/questions/67248426/… 【参考方案1】:
struct ScrollViewIssue: View 
var body: some View 
    ScrollView 
        VStack 
            Rectangle()
                .foregroundColor(.gray)
                .frame(height: UIScreen.main.bounds.height)
                .frame(height: 200, alignment: .bottom)
            
            Circle()
                .frame(width: 300, height: 300)
            
            Circle()
                .frame(width: 300, height: 300)
            
            Circle()
                .frame(width: 300, height: 300)
            
            Circle()
                .frame(width: 300, height: 300)
        
    .ignoresSafeArea()


【讨论】:

以上是关于如何防止用户滚动超过某个点?的主要内容,如果未能解决你的问题,请参考以下文章

防止弹性项目超过父高度并使滚动条工作

如何防止点击屏幕上的某个区域

Objective c - 表格视图内的按钮防止表格滚动

当用户开始自己滚动时,如何防止停止 scrollIntoView?

如何防止滚动到焦点 EditText [重复]

防止 input type="number" 的值超过一个点并限制小数位数