一、首先在你的代码中增加长按事件方法的实现,如下:
//长按事件的手势监听实现方法
- (void) myHandleTableviewCellLongPressed:(UILongPressGestureRecognizer *)gestureRecognizer {
if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
NSLog(@"UIGestureRecognizerStateBegan");
}
if (gestureRecognizer.state == UIGestureRecognizerStateChanged) {
NSLog(@"UIGestureRecognizerStateChanged");
}
if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
NSLog(@"UIGestureRecognizerStateEnded");
}
}
二、将TableView增加长按手势监听绑定到上面的函数(handleTableviewCellLongPressed)。如下:
- (void)viewDidLoad
{
//------------------------------------------------------------------------------------
//创建长按手势监听
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(myHandleTableviewCellLongPressed:)];
//代理
longPress.delegate = self;
longPress.minimumPressDuration = 1.0;
//将长按手势添加到需要实现长按操作的视图里
[myTableViewControl addGestureRecognizer:longPress];
[longPress release];
//------------------------------------------------------------------------------------
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
注意:myTableViewControl是程序中的UITableView控件。同时为该控件增加IBOutlet的属性,如下:
@property (retain, nonatomic) IBOutlet UITableView *myTableViewControl;
这是比较简单的方法,另外,你还可以给你的程序增加UIGestureRecognizerDelegate的委托,并实现相应的回调函数也可以做到。
运行环境:
MacOS 10.7.4 + XCode 4.3.3 + iOS 5.1