问题描述
- IOS 触摸 手势和tableView cell的点击冲突
-
刚开始书写的方法
// 触摸- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{//取出touches集合元素
UITouch *touch = [touches anyObject];
NSLog(@"%@", touch);CGPoint point = [touch locationInView:self.view];
// 打印point
NSLog(@" point = %@", NSStringFromCGPoint(point));
}
打印
2015-05-06 14:48:54.859 XXHJect[18241:317948] 4444{127.5, 201}只会执行点击cell的方法 , 我在View 写的触摸方法 不走 ;
求大神解决 ,
我要让两个方法都走 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
解决方案
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
// if ([NSStringFromClass([touch.view class]) isEqualToString:@"PKProductMainListTableViewCellContentView"]) {
// return NO;
// }
if ([touch.view isKindOfClass:[UITableViewCell class]]) {
return NO;
}
return YES;
}
解决方案二:
问题描述的不清楚啊,能说清点嘛?
解决方案三:
在父view上添加个子view, 子view会挡住触摸手势不会再传到父view上去,不过你可以在子view 上继承下面两个方法来获取触摸手势,这两个方法具体什么意思,你可以百度或者Google一下:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event; // recursively calls -pointInside:withEvent:. point is in the receiver's coordinate system
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event; // default returns YES if point is in bounds
解决方案四:
触摸和cell的点击事件冲突了
解决方案五:
触摸和cell的点击事件冲突了
(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { // if ([NSStringFromClass([touch.view class]) isEqualToString:@"PKProductMainListTableViewCellContentView"]) { // return NO; // } if ([touch.view isKindOfClass:[UITableViewCell class]]) { return NO; } return YES; }
这个 也不怎么好使。哈哈。
解决方案六:
我也遇到类似的问题,我是在view上添加了tap手势,然后冲突了,看到这个后正好解决了,多谢