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