iOS手势冲突

首先添加UIGestureRecognizerDelegate协议,然后把 Tap手势识别对象设置代理self,然后实现如下代码:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

if ([touch.view isKindOfClass:[UIButton class]]){

return NO;

}


// 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件

if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {

return NO;

}

return  YES;

}


两个控件之间的手势冲突

我在一个横向滚动的scrollview里面加了一个竖向滚动的tableview,这时如果实现了scrollview的代理方法却没有区分scrollview和tableview,这时候tableview的滚动会发生混乱。解决方法是在didScroll代理方法里区分这两个。

#pragma mark - scrollView delegate

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

if ([scrollView isKindOfClass:[UITableView class]]) {

// NSLog(@"------是列表---");

}

else {

// NSLog(@"------是滚动试图----");

}

}


UIScrollView和子视图TableView的cell右滑删除冲突

横向滚动的scrollview里面有一个子视图tableview,tableview的cell右右滑冲突,除非手指激活tracking停留一会儿,否则无法激活右滑删除。

解决办法类似上面的,scrollview的左右滑依旧是由UIPanGesturerRecognizer控制的,但是该手势的代理无法更改

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

{

//NSLog(@"手势触发的类=%@",NSStringFromClass([touch.view class]));

// 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件

if ([NSStringFromClass([touch.view class])isEqualToString:@"UITableViewCellContentView"]) {

return NO;

}

return YES;

}

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

{

// 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件

if ([NSStringFromClass([gestureRecognizer.view class])isEqualToString:@"UITableViewCellContentView"]) {

return NO;

}

return YES;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 4,799评论 1 6
  • 今天有人问我collectionView 的左滑和 cell中的左滑手势冲突怎么处理 目前有两个处理方式 适用于 ...
    zp秋枫暮霞阅读 4,806评论 0 4
  • 一 : view添加手势与tableView冲突问题 ** 问题: ** 在UIView界面中的部分区域添加tab...
    阶梯阅读 11,494评论 0 3
  • 1、禁止手机睡眠 [UIApplication sharedApplication].idleTimerDisab...
    FF_911阅读 5,228评论 0 3
  • 前一段时间,因考虑自我发展,把绝大部分精力和时间都花在了自己的学习上。因安排的内容较多,加上娃也需要时间和精力,让...
    明媚Sopy阅读 1,586评论 0 0