在scrollview中禁用后滚动的最简单方法

时间:2016-12-11 04:21:30

标签: ios swift uiscrollview swift3

我想在用户滚动到下一页后停止在ScrollView上向后滚动。我怎么能这样做。

我尝试了以下两个代码,但第一个代码没有任何影响

 self.scrollView.contentOffset  = CGPointMake(self.view.frame.width,0)

,第二个仅禁用向前滚动。

self.scrollView.contentSize =  CGSizeMake( 2 * scrollWidth, scrollHeight);

1 个答案:

答案 0 :(得分:1)

要禁用单向滚动,请实现UIScrollViewDelegate方法scrollViewDidScroll并将逻辑放在那里。例如,这个TableViewController只能向下滚动,因为如果用户试图向上滚动,我们只是覆盖contentOffset,在它们看到之前有效地撤消它们的滚动。

    class ViewController: UITableViewController {
        var lastScrollPosition = CGPoint.zero
        override func scrollViewDidScroll(_ scrollView: UIScrollView) {
            guard scrollView.contentOffset.y > lastScrollPosition.y else {
                scrollView.setContentOffset(lastScrollPosition, animated: false)
                return
            }
            lastScrollPosition = scrollView.contentOffset
        }
    }