判断手势冲突
今天遇到一个问题,我建立了一个列表(UITableView),但是点击的时候,不是调用 tableView: didSelectRowAtIndexPath:方法,显示效果是点击cell,cell会显示背景色(比如我设置的是蓝色)但是手指一离开,颜色就消失了,想了半天才突然想到我加了点击手势在这个界面(这个界面好久前做的,老天原谅我记性不大吧),除此之外,点击手势还会和按钮(UIButton)的点击出现冲突,一并记录下来,供以后查询,免得再忘!!!
首先创建一个点击手势,我一般是在viewWillAppear:方法里
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapHandle:)]; tap.delegate = self;//设置代理,不要忘了! [self.viewaddGestureRecognizer:tap];//添加手势
//tap的代理方法 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { //判断是否在点击按钮 if ([touch.view isKindOfClass:[UIButton class]]) { return NO; } //判断是否在点击cell else if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) { return NO; } else { return YES; } }
代码就这么多,很简单吧?
大家有什么更好的方法或者判断其他的冲突,请给我留言,谢谢