第一种方法:
一、在代码中增加长按事件方法的实现
//长按事件的手势监听实现方法
- (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]);
}