美文网首页
监听scrollview上的手势

监听scrollview上的手势

作者: 雨雪霏霏why | 来源:发表于2017-01-11 09:39 被阅读682次

UIScrollView自带两种手,分别为:UIPanGestureRecognizer和UIPinchGestureRecognizer
我们可以通过KVO来监听手势,首先需要让scrollview添加监听

[imagescrollView addObserver:self forKeyPath:@"panGestureRecognizer.state" options:NSKeyValueObservingOptionNew context:nil];

下面是具体的监听事件
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{ if (imagescrollView.panGestureRecognizer.state == UIGestureRecognizerStateBegan) { NSLog(@"开始"); }

if (imagescrollView.panGestureRecognizer.state == UIGestureRecognizerStateChanged) { NSLog(@"改变"); }

if (imagescrollView.panGestureRecognizer.state == UIGestureRecognizerStateEnded) {
    NSLog(@"结束");
}

}

如果想检测scrollview的左右滑动,可以给scrollview添加两个手势

 left.delegate = self;
left.direction = UISwipeGestureRecognizerDirectionLeft;
 [imagescrollView addGestureRecognizer:left];```
        
        UISwipeGestureRecognizer * right = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(rightSwip)];
        right.delegate = self;
        right.direction = UISwipeGestureRecognizerDirectionRight;
        [imagescrollView addGestureRecognizer:right];```

最后再加上下面的方法即可
`- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
    return YES;
}`

相关文章

网友评论

      本文标题:监听scrollview上的手势

      本文链接:https://www.haomeiwen.com/subject/jwfevttx.html