【问题标题】:How to detect scrollView scrolling direction?如何检测scrollView的滚动方向?
【发布时间】:2015-10-05 04:03:36
【问题描述】:

我有一个UIScrollView 里面有一个UITableView 滚动视图应该水平滚动。我已经实现- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 在滚动视图结束其水平滚动时执行一些任务。但我的问题是,即使UITableView 垂直滚动也停止了,这个代表也会触发。那么我怎样才能检测到这个委托中的scrollview 水平滚动呢?

请帮帮我, 谢谢

【问题讨论】:

    标签: ios objective-c uitableview uiscrollview


    【解决方案1】:

    检查这些委托方法

    CGPoint _lastContentOffset;
    
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
      _lastContentOffset = scrollView.contentOffset;
    }
    
      - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    
        if (_lastContentOffset.x < (int)scrollView.contentOffset.x) {
          NSLog(@"Scrolled Right");
        }
        else if (_lastContentOffset.x > (int)scrollView.contentOffset.x) {
          NSLog(@"Scrolled Left");
        }
    
        else if (_lastContentOffset.y < scrollView.contentOffset.y) {
          NSLog(@"Scrolled Down");
        }
    
        else if (_lastContentOffset.y > scrollView.contentOffset.y) {
          NSLog(@"Scrolled Up");
        }
    }
    

    【讨论】:

      【解决方案2】:

      Swift 版本:

        var _lastContentOffset: CGPoint!
      
        func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
           _lastContentOffset = scrollView.contentOffset
        }
      
        func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
      
          if _lastContentOffset.x < scrollView.contentOffset.x {
            NSLog("Scrolled Right")
          }
          else if _lastContentOffset.x > scrollView.contentOffset.x {
            NSLog("Scrolled Left")
          }
      
          else if _lastContentOffset.y < scrollView.contentOffset.y {
            NSLog("Scrolled Down")
          }
      
          else if _lastContentOffset.y > scrollView.contentOffset.y {
            NSLog("Scrolled Up")
          }
      }
      

      【讨论】:

      • 在代码中添加一些解释总是好的 :)
      猜你喜欢
      • 1970-01-01
      • 2020-04-08
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多