美文网首页iOS Developer
ios中Slider和父控件tap手势冲突

ios中Slider和父控件tap手势冲突

作者: 老骚鹅 | 来源:发表于2017-03-23 16:17 被阅读277次

给slider添加UIControlEventTouchDown
UIControlEventTouchUpInside
UIControlEventTouchUpOutside
UIControlEventValueChanged事件,
并且给slider的父控件添加tap点击事件
,但是滑动完slider后手指起来会触发到父控件的tap事件
解决办法:将tap的delegate = self;
实现代理<UIGestureRecognizerDelegate>的方法:
-(BOOL)gestureRecognizer:(UIGestureRecognizer)gestureRecognizer shouldReceiveTouch:(UITouch)touch {

if([touch.view isKindOfClass:[UISlider class]])
{
    //当点击事件响应到slider时,让他失效
    return NO;
}else{
    return YES;
}

}

==============在做视频播放时碰到的bug slider加在scrollVIew上============
解决办法:将self.scrollView.panGestureRecognizer.delegate = self.scrollVIew;其实默认delegate就是等于scrollVIew
然后重写
-(BOOL)gestureRecognizer:(UIGestureRecognizer)gestureRecognizer shouldReceiveTouch:(UITouch)touch {
NSLog(@"==%@==",touch.view.class);
if([touch.view isKindOfClass:[UISlider class]]) {
return NO;
} else {
return YES;
}

}

相关文章

网友评论

    本文标题:ios中Slider和父控件tap手势冲突

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