ios 手势传值

UILongPressGestureRecognizer *longGestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(editPathAction:)];
    longGestureRecognizer.minimumPressDuration = 0.7;
    longGestureRecognizer.numberOfTouchesRequired = 1;
    longGestureRecognizer.view.tag = indexPath.row;
    cell.contentView.tag = indexPath.row;
    [cell.contentView addGestureRecognizer:longGestureRecognizer];

在 tableViewCell 上添加了一个长按手势,在手势方法 editPathAction: 中需要确认是哪一个cell触发了方法,cell.contentView.tag = indexPath.row 给cell一个 tag 值,在 editPathAction: 方法中获取cell

- (void)editPathAction:(UILongPressGestureRecognizer *)longGestureRecognizer{
    //长按会两次触发手势方法,可通过 longGestureRecognizer.state == UIGestureRecognizerStateBegan 判断来解决该问题
    if (longGestureRecognizer.state == UIGestureRecognizerStateBegan) {
        NSInteger index = longGestureRecognizer.view.tag;
        NSDictionary *dic = _dataSource[index];
    }
}

NSInteger index = longGestureRecognizer.view.tag ,可以获取到触发方法的 cell 的 tag 值,即可确定是哪一个 cell 触发了方法,也就能获取到 cell 的数据。
***其中,longGestureRecognizer.view 就是添加手势的那个 view,此处即是 cell.contentView。

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

推荐阅读更多精彩内容

  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,757评论 1 9
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,211评论 30 472
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,091评论 3 38
  • 1.nav1.navigationBar.barStyle=UIBarStyleBlack; //改变导航栏背景颜...
    SadMine阅读 1,636评论 1 4
  • 2017年9月9日,如是家人李建英,第26天种种子日志 发心:我今不是为了我个人而闻思修行,而是为了六道轮回一切如...
    若嘉阅读 324评论 0 1