设置 UIScrollview 滚动方向

Posted

技术标签:

【中文标题】设置 UIScrollview 滚动方向【英文标题】:Set UIScrollview Scroll Direction 【发布时间】:2016-02-15 02:31:30 【问题描述】:

我设置了内容大小,以便激活垂直滚动,但我只希望用户能够向北滚动而不是向南滚动。关于如何实现这一点的任何想法?

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

我只想要向上滚动的能力并禁用向下滚动的能力,这是滚动视图的默认方向

【问题讨论】:

【参考方案1】:

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

myScroll.contentOffset = CGPoint(x: 0,y: 190) // 这里的 190 与 contentSize 中的高度增加值相同。

【讨论】:

如果你想向左滚动而不是向右滚动(如果你的滚动只是水平滚动)myScroll.contentOffset = CGPoint(x: yourScrollWidth,y: 0)【参考方案2】:

创建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()
    

结果:

【讨论】:

【参考方案3】:
    选择您的滚动视图 选择身份检查员

    设置用户定义属性(见图)

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

注意:设置你自己的滚动

【讨论】:

【参考方案4】:

您可以设置UIPanGestureRecognizer 的方向,该方向附加到您的UIScrollView

查看一些有最新答案的热门问题,例如this one。

或者直接选择pod 'UIPanGestureRecognizerDirection'

【讨论】:

以上是关于设置 UIScrollview 滚动方向的主要内容,如果未能解决你的问题,请参考以下文章

防止重叠的 UIScrollView 滚动

UIScrollView 在分页时确定 scrollViewDidEndDragging 上的滚动方向

UIScrollView 无法正常工作(它返回顶部并且不显示任何滚动条

IOS UIScrollView + UIButton 实现页面和顶部标签页水平滚动效果

UIScrollView 显示为零?

UIScrollView - 检测layoutSubviews中的滚动与方向变化?