方法-IOS 触摸 手势和tableView cell的点击冲突

问题描述

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}

我在View 添加 了tableView

只会执行点击cell的方法 , 我在View 写的触摸方法 不走 ;

求大神解决 ,
我要让两个方法都走

解决方案

  • (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手势,然后冲突了,看到这个后正好解决了,多谢

时间: 2024-12-21 01:05:38

方法-IOS 触摸 手势和tableView cell的点击冲突的相关文章

ios tableview cell的自定义左滑按钮

问题描述 ios tableview cell的自定义左滑按钮 ios tableview cell的自定义左滑按钮是ios8之后才出现,那么在这之前使用什么方法实现的? 解决方案 这个应该能帮助你http://www.cocoachina.com/ios/20151118/14243.html

求方法,大神们自定义cell ios

问题描述 求方法,大神们自定义cell ios 怎么自定义一个cell像手机qq音乐一样里面有图片有两个label,点击它,相应的表格可以跳到播放界面 解决方案 创建一个类继承UITableViewCell,如果用代码写,就在.h文件里写入你所需要的控件,再在.m文件里创建:如果是xib,就直接拖控件并绑定 解决方案二: http://www.cnblogs.com/hellocby/archive/2012/05/23/2514270.html 解决方案三: 直接把label替换成button

ios-如何在cell中设置cell不能点击(不是在TableView中在设置)

问题描述 如何在cell中设置cell不能点击(不是在TableView中在设置) 如何在cell中设置cell不能点击(不是在TableView中在设置) 解决方案 将cell的交互关掉 解决方案二: cell.userInteractionEnabled = No; 解决方案三: cell.selectionStyle = UITableViewCellSelectionStyleNone; 是没有选中效果,还是可以点击的 解决方案四: 将cell的交互关掉 将cell的交互关掉 将cell

ios-点击键盘,手势会穿透键盘,点击到键盘底下的Cell,这是什么原因?

问题描述 点击键盘,手势会穿透键盘,点击到键盘底下的Cell,这是什么原因? 点击键盘,手势会穿透键盘,点击到键盘底下的Cell,这是什么原因? 解决方案 手势添加的位置不对! 解决方案二: Cell上有textview.点击时tableview下移,可以使得cell被弹出的键盘挡上,从而解决问题 解决方案三: 手势添加的位置不对! 解决方案四: 键盘和cell不要重叠 解决方案五: 当键盘显示或消失时,系统会发送相关的通知: UIKeyboardWillShowNotification UIK

uitablevie...-ios 封装好的tableview如何进行刷新?封装UIView里面,有好几个table,如何在刷新

问题描述 ios 封装好的tableview如何进行刷新?封装UIView里面,有好几个table,如何在刷新 ios 封装好的tableview如何进行刷新?封装UIView里面,有好几个table,如何在刷新 解决方案 下载完数据后如何刷新?求教了 解决方案二: 可以在你封装好的uiview写一个方法,到获取完数据的时候,把数据传进去,然后更新需要更新的uitableview就行了 解决方案三: 你把table对应的数组数据更新了以后再reloadData重新加载对应的tableview 解

ios的手势操作之UIGestureRecognizer浅析(推荐)_IOS

一.概述 iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)

ios-滑动手势从tableView删除文件

问题描述 滑动手势从tableView删除文件 if (editingStyle == UITableViewCellEditingStyleDelete){ NSFileManager *fileManager = [[NSFileManager alloc]init]; NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@ ",[

《精解 Windows 10》——2.10 触摸手势

2.10 触摸手势 Modern界面本身非常适合触摸屏.当使用触摸屏幕时,可以使用触摸手势完成各项操作任务.使用触摸手势,自然而直观,使用起来更加便利. 长按显示更多选项 在某些情况下,长按某些项目,可以打开提供更多选项的菜单. 等效的鼠标操作:类似于使用鼠标右键单击. 单击以执行操作 单击某些内容将触发某种操作,例如运行某个应用程序或打开某个链接. 等效的鼠标操作:类似于使用鼠标单击. 通过滑动进行拖拽 拖拽动作主要用于平移或滚动列表和页面,也可以用于其他操作,例如拖拽移动一个磁贴.应用程序窗

《精解Windows8》——2.14 触摸手势

2.14 触摸手势 精解Windows8Metro界面本身就最适合在触摸屏幕中使用.当用户使用触摸屏幕或者使用Windows RT操作系统时,可以使用触摸手势完成各项操作任务.使用触摸手势,自然而直观,使用起来更加便利. 从屏幕右侧轻扫打开超级按钮从屏幕右侧轻扫将显示超级按钮,如图2-91所示为从屏幕右侧轻扫手势. 等效的鼠标操作:将鼠标箭头移动到屏幕右上角或右下角. 从屏幕左侧轻扫切换Metro应用程序从屏幕左侧轻扫可以显示当前已经打开的Metro应用程序缩略图,用户可以快速切换至这些Metr