最近項(xiàng)目里遇到一個(gè)問題,就是播放器底部Slider所在的View如果添加在一個(gè)帶有手勢的View上,那么點(diǎn)擊Slider的時(shí)候有很大的可能觸發(fā)事件穿透進(jìn)而觸發(fā)背景View的手勢動(dòng)作而不是Slider的拖拽動(dòng)作。
解決方法:
代碼塊
1,背景View 遵守<UIGestureRecognizerDelegate>協(xié)議 并設(shè)置代理為自己
2,在背景View中加入以下方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
if ([NSStringFromClass([touch.view class]) isEqualToString:@"你點(diǎn)擊的View的類名(比如TempView)"] ) {
NSLog(@"%@ - touche return", NSStringFromClass([touch.view class]));
//那么在點(diǎn)擊TempView時(shí)事件就不會(huì)往它的父View傳遞
return NO;
}
return YES;
}
以上。