2012-05-21 38 views
0

如果我剛開始的Xcode 4.3.2一個全新的單一視圖應用項目,並使用下面的代碼:在iOS上,爲什麼以下UITapGestureRecognizer(Tap)不起作用?

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIImageView *imageView = [[UIImageView alloc] 
           initWithImage:[UIImage imageNamed:@"pic.jpg"]]; 
    [self.view addSubview:imageView]; 

    self.view.userInteractionEnabled = YES; 
    self.view.multipleTouchEnabled = YES; 

    UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] 
           initWithTarget:self action:@selector(handleTap:)]; 
    tapRecognizer.numberOfTapsRequired = 1; 

    [imageView addGestureRecognizer:tapRecognizer]; 
} 

-(void) handleTap:(UIGestureRecognizer *) gesture { 
    NSLog(@"Image tapped on"); 
} 

即使我在圖像上挖掘的handleTap方法不會被調用......是什麼這裏沒有正確完成?

回答

4

您需要啓用您的圖像視圖觸摸(因爲它是默認禁用),而不是在控制器的視圖:

imageView.userInteractionEnabled = YES; 
+0

默認userInteractionEnabled是父母真的,但不是爲孩子 –

+0

@Vladimir完美的答案!你有很長一段時間一直在做iOS/Cocoa編程嗎?! –

+0

@safecase,這對UIView類是正確的,但對於某些子類,即UILabel,UIImageView是錯誤的 - 您需要將它設置爲YES明確地爲 – Vladimir

0

<UIGestureRecognizerDelegate>在你的頭文件中的@interface的末尾嗎?

相關問題