在进行播放器开发过程中,遇到了一个问题,具体表现就是UISlider在进行小范围内滑动的时候不能正常的触发TouchUpInside和TouchUpOutside。
后来抽丝剥茧查看后发现是因为slider的滑动和底层的手势有冲突,导致不能运行;
解决过程:
该视图继承UIGestureRecognizerDelegate,并实现以下方法
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
if([gestureRecognizer locationInView:gestureRecognizer.view].y >= _controlView.frame.origin.y && !_controlView.hidden)
return NO;
return YES;
}
上面的_controlView就是控制视图。因为我们这个播放下下面的控制视图有暂停按钮,滑动等按钮,事件也比较多,就在这个范围内直接不让手势触发就行了。