首页 > 代码库 > iOS UIButton长按事件

iOS UIButton长按事件

//UIButton *aBtn=[UIButton buttonWithType:UIButtonTypeCustom];
//[aBtn setFrame:CGRectMake(40, 100, 60, 60)];
[aBtn setBackgroundImage:[UIImage imageNamed:@"111.png"] forState:UIControlStateNormal];
//button点击事件
[aBtn addTarget:self action:@selector(btnShort:) forControlEvents:UIControlEventTouchUpInside];
//button长按事件
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(btnLong:)];
longPress.minimumPressDuration = 0.8; //定义按的时间
[aBtn addGestureRecognizer:longPress];

 

-(void)btnLong:(UILongPressGestureRecognizer *)gestureRecognizer{
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) {
NSLog(@"长按事件");
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"消息" message:@"确定删除该模式吗?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"删除", nil];
[alert show];
}
}

 

 

//另一种

- (id)initWithFrame:(CGRect)frame {

UITableView *tmpTblView = [[UITableView alloc] initWithFrame:self.frame];

.......

//实例化长按手势监听

UILongPressGestureRecognizer *longPress = 

[[UILongPressGestureRecognizer alloc] initWithTarget:self 

action:@selector(handleTableviewCellLongPressed:)];

        //代理

longPress.delegate = self;

        longPress.minimumPressDuration = 1.0;

//将长按手势添加到需要实现长按操作的视图里

        [tmpTblView addGestureRecognizer:longPress];

        [longPress release];

[tmpTblView release];

}

//长按事件的实现方法

- (void) handleTableviewCellLongPressed:(UILongPressGestureRecognizer *)gestureRecognizer {

    if (gestureRecognizer.state ==  UIGestureRecognizerStateBegan) {

        NSLog(@"UIGestureRecognizerStateBegan");

    }

if (gestureRecognizer.state ==  UIGestureRecognizerStateChanged) {

        NSLog(@"UIGestureRecognizerStateChanged");

    } 

if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {

        NSLog(@"UIGestureRecognizerStateEnded");

    }

}