监听cell的长按事件

第一种方法:

一、在代码中增加长按事件方法的实现

//长按事件的手势监听实现方法
- (void) TableviewCellLongPressed:(UILongPressGestureRecognizer *)gestureRecognizer {
    HHLog(@"----------------------");
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
        HHLog(@"UIGestureRecognizerStateBegan");
    }
    if (gestureRecognizer.state == UIGestureRecognizerStateChanged) {
        HHLog(@"UIGestureRecognizerStateChanged");
    }
    
    if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
        HHLog(@"UIGestureRecognizerStateEnded");
    }
}


二、增加监听tableView长按事件的方法

//创建长按手势监听
UILongPressGestureRecognizer *cell = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(TableviewCellLongPressed:)];
    
//将长按手势添加到需要实现长按操作的视图里
[self.myTableViewControl addGestureRecognizer:cell];


三、设置UITableView的IBOutlet属性

@property (retain, nonatomic) IBOutlet UITableView *myTableViewControl;

注:myTableViewControl要和控制器中的TableView连线


第二种方法:

第二种方法就是把第一种方法的第三步省略,使用self.tableView

//创建长按手势监听
UILongPressGestureRecognizer *cell = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(TableviewCellLongPressed:)];

//将长按手势添加到需要实现长按操作的视图里
[self.tableView addGestureRecognizer:cell];


最后,如何取得长按cell的行号:

// 取得选中的行
CGPoint point = [gestureRecognizer locationInView:self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint:point];
if (indexPath == nil) {
    NSLog(@"nil");
}else {
    HHLog(@"长按的行号是:%d",[indexPath row]);
}




转载于:https://my.oschina.net/hehongbo/blog/532936

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值