天天看點

給UIImageView添加點選事件

給UIImageView添加點選事件

//單手單擊
UIImageView *imageview1 = [[UIImageView alloc] initWithFrame:CGRectMake(125, 50, 229, 229)];
        [imageview1 setImage:[UIImage imageWithContentsOfFile:path]];
        imageview1.userInteractionEnabled = YES;
        UITapGestureRecognizer *singleTap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(buttonpress1:)];
        [imageview1 addGestureRecognizer:singleTap1];
        [singleTap1 release];
        [myScrollView addSubview:imageview1];
        [imageview1 release];
           

手勢recognizer

//單指單擊

 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(@"單指單擊");
 }elseif(sender.numberOfTapsRequired == 2){
//單指輕按兩下
NSLog(@"單指輕按兩下");
}
 }
 //處理雙指事件
 - (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender
 {
 if(sender.numberOfTapsRequired == 1) {
 //雙指單擊
 NSLog(@"雙指單擊");
 }elseif(sender.numberOfTapsRequired == 2){
 //雙指輕按兩下
 NSLog(@"雙指輕按兩下");
 }
 }