我有一个滚动视图,希望它只能向下滚动,而且不能在任何其他方向上滚动。这不是关于水平或垂直的问题,而是我希望滚动视图仅在垂直模式下向下滚动,而不是向上滚动。
我有一个滚动视图,希望它只能向下滚动,而且不能在任何其他方向上滚动。这不是关于水平或垂直的问题,而是我希望滚动视图仅在垂直模式下向下滚动,而不是向上滚动。
解决方案
子类化UIScrollView并重写方法以限制水平滚动,仅在向下方向滚动时才滚动:
class DownwardsOnlyScrollView: UIScrollView
{
override func setContentOffset(_ contentOffset: CGPoint, animated: Bool) {
// restrict movement to vertical only
let newOffset = CGPoint(x: 0, y: contentOffset.y)
//only scroll if scroll direction is downwards
if newOffset.y > self.contentOffset.y
{
super.setContentOffset(newOffset, animated: animated)
}
}
}