ISO給UIImageView增長點擊事件

本身作了一個九宮格,裏面的圖標都是由多張圖片重疊構成,而後包裝成一個button來使用;ui

遇到的問題是如何給這個「button」增長點擊事件?spa

解決思路1:網友提示在該「button」上增長一個真正的透明button,這樣就能夠順利執行點擊事件了;可是本人嘗試發現,若是我調整了button的透明度後,點擊是沒有效果的!多是我操做錯誤,待再次驗證。事件

解決思路2:爲UIImageView增長手勢圖片

[ImageView addGestureRecognizer:咱們本身的手勢recognizer];get

如何建立一個手勢?看看UITapGestureRecognizer 的用法吧。it

 

 //單指單擊

 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(@"雙指雙擊");
 }
 }
相關文章
相關標籤/搜索