我设置了内容大小,以便垂直滚动被激活,但我只想让用户能够向北滚动,而不能向南滚动。 有什么想法可以实现这一点吗?
//set high greater than view
myScroll.contentSize = CGSize(width: myView.view.frame.width,height: myView.view.frame.height + 190)
我只想拥有向上滚动的能力,并禁用滚动视图默认的向下滚动方向。
我设置了内容大小,以便垂直滚动被激活,但我只想让用户能够向北滚动,而不能向南滚动。 有什么想法可以实现这一点吗?
//set high greater than view
myScroll.contentSize = CGSize(width: myView.view.frame.width,height: myView.view.frame.height + 190)
您可以将滚动视图的内容偏移设置为底部,即:
myScroll.contentOffset = CGPoint(x: 0, y: 190)
// 这里的 190 是 contentSize 增加的高度值
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()
}
}
结果:
您可以设置附加到您的UIScrollView
的UIPanGestureRecognizer
的方向。
查看一些流行问题,其中包含最新的答案,例如this one。
或者只需使用pod 'UIPanGestureRecognizerDirection'
。