【问题标题】:Set UIScrollview Scroll Direction设置 UIScrollview 滚动方向
【发布时间】: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)

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

【问题讨论】:

    标签: ios swift uiscrollview


    【解决方案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】:
      1. 选择您的滚动视图
      2. 选择身份检查员
      3. 设置用户定义属性(见图)

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

      注意:设置你自己的滚动

      【讨论】:

        【解决方案4】:

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

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

        或者直接选择pod 'UIPanGestureRecognizerDirection'

        【讨论】:

          猜你喜欢
          • 2012-07-01
          • 2013-03-17
          • 1970-01-01
          • 2011-02-02
          • 2012-03-27
          • 2017-08-24
          • 2010-10-24
          • 2012-06-15
          • 2013-12-13
          相关资源
          最近更新 更多