设置UIScrollView滚动方向。

5

我设置了内容大小,以便垂直滚动被激活,但我只想让用户能够向北滚动,而不能向南滚动。 有什么想法可以实现这一点吗?

//set high greater than view
myScroll.contentSize = CGSize(width: myView.view.frame.width,height: myView.view.frame.height + 190)

我只想拥有向上滚动的能力,并禁用滚动视图默认的向下滚动方向。
4个回答

3

您可以将滚动视图的内容偏移设置为底部,即:

myScroll.contentOffset = CGPoint(x: 0, y: 190) // 这里的 190 是 contentSize 增加的高度值


如果你想向左滚动而不是向右滚动(如果你的滚动只是水平的):myScroll.contentOffset = CGPoint(x: yourScrollWidth,y: 0) - Letaief Achraf

1
创建一个UIScrollView的子类。覆盖layoutSubviews方法,确保contentOffset.y只能增加,除非它超出了内容范围的末尾,这样滚动视图就可以在底部反弹。
class MyScrollView: UIScrollView {
    var priorOffset = CGPoint.zero

    override func layoutSubviews() {
        var offset = contentOffset

        if offset.y < priorOffset.y {
            let yMax = contentSize.height - bounds.height
            if offset.y < yMax {
                offset.y = priorOffset.y
                contentOffset = offset
            }
        }
        priorOffset = offset

        super.layoutSubviews()
    }
}

结果:

one-way scroll view


0
  1. 选择你的ScrollView
  2. 选择“身份检查器”
  3. 设置用户定义属性(见图像)

    在图像中,第一个435是垂直滚动,第二个116是水平滚动。

注意:设置你自己的滚动。

enter image description here


0

您可以设置附加到您的UIScrollViewUIPanGestureRecognizer的方向。

查看一些流行问题,其中包含最新的答案,例如this one

或者只需使用pod 'UIPanGestureRecognizerDirection'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接