判断手势冲突

今天遇到一个问题,我建立了一个列表(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;

    }

}

 

代码就这么多,很简单吧?

大家有什么更好的方法或者判断其他的冲突,请给我留言,谢谢

posted @ 2013-12-04 16:00  开玩笑啊  阅读(349)  评论(0编辑  收藏  举报