您的位置:首页 > 产品设计 > UI/UE

UIImageView响应点击事件

2013-03-13 21:15 423 查看
UIImageView *imageView = [self getYourImageView];

imageView.image = [self getYourImage];

imageView.userInteractionEnabled = YES;

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(yourHandlingCode:)];

[imageView addGestureRecognizer:singleTap];

[singleTap release];

//单指单击

UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self

 action:@selector(handleSingleFingerEvent:)];

 singleFingerOne.numberOfTouchesRequired = 1; //手指数

 singleFingerOne.numberOfTapsRequired = 1; //tap次数

 singleFingerOne.delegate = self;

 //单指双击

 UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self

 action:@selector(handleSingleFingerEvent:)];

 singleFingerTwo.numberOfTouchesRequired = 1;

 singleFingerTwo.numberOfTapsRequired = 2;

 singleFingerTwo.delegate = self;

 //双指单击

UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self

action:@selector(handleDoubleFingerEvent:)];

 doubleFingerOne.numberOfTouchesRequired = 2;

 doubleFingerOne.numberOfTapsRequired = 1;

doubleFingerOne.delegate = self;

UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self

                     action:@selector(handleDoubleFingerEvent:)];

 doubleFingerTwo.numberOfTouchesRequired = 2;

 doubleFingerTwo.numberOfTapsRequired = 2;

 doubleFingerTwo.delegate = self;

//如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理

[singleFingerOne requireGestureRecognizerToFail:singleFingerTwo];

 //同理双指亦是如此

 [doubleFingerOne requireGestureRecognizerToFail:doubleFingerTwo];

 [self.view addGestureRecognizer:singleFingerOne];

[self.view addGestureRecognizer:singleFingerTwo];

[self.view addGestureRecognizer:doubleFingerOne];

 [self.view addGestureRecognizer:doubleFingerTwo];

 [singleFingerOne release];

 [singleFingerTwo release];

[doubleFingerOne release];

 [doubleFingerTwo release];

处理事件的方法,代码:

//处理单指事件

 - (void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender

{

if (sender.numberOfTapsRequired == 1) {

 //单指单击

 NSLog(@"单指单击");

}else if(sender.numberOfTapsRequired == 2){

 //单指双击

NSLog(@"单指双击");

}

 }

 //处理双指事件

 - (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender

{

 if (sender.numberOfTapsRequired == 1) {

 //双指单击

NSLog(@"双指单击");

}else if(sender.numberOfTapsRequired == 2){

//双指双击

 NSLog(@"双指双击");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: