2012-05-07 49 views
1

我有一個視圖控制器,其中顯示圖像的網格/數組,其中每個圖像視圖都是自定義筆尖(自定義筆尖,因爲圖像的名稱爲&喜歡/不喜歡的圖標)。所以我在我的視圖控制器viewDidLoad中顯示了像這樣的圖像網格。iOS手勢處理:在使用自定義UIView時添加手勢識別器的位置

int row=0, col=0; 
for (int i=0; i<arrayImg.count; i++) { 
    NSArray *topObj = [[NSBundle mainBundle] loadNibNamed:@"CustomImageView" owner:nil options:nil]; 
    CustomImageView *imgView = [topObj objectAtIndex:0]; 
    imgView.frame = CGRectMake(180*col+10, 180*row+10, 170, 170); 

    // custom image values inserted here 

    [self.view addSubView:imgView]; 

    // update the row,col variables here 
} 

現在我需要爲屏幕上顯示的每個圖像添加一個水龍頭手勢識別器。在這種情況下,在自定義筆尖/類中添加手勢識別器CustomImageView似乎符合邏輯。 CustomImageView延伸UIView,所以它似乎無法在此處聲明手勢識別器(自動完成不會出現,語法高亮也不起作用)。我在這裏錯過了什麼?

回答

5

您可以將一個手勢識別器添加到您的CustomImageView(只要它是UIView)。嘗試是這樣的:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]; 
[tapRecognizer setNumberOfTapsRequired:1]; 
[tapRecognizer setDelegate:self]; 

[imgView addGestureRecognizer:tapRecognizer]; 

需要注意的是,你應該看到自動完成的唯一方法是addGestureRecognizer

通常,爲了決定某個功能是否存在,通常需要官方文檔(或編譯器,如果您喜歡)自動完成。根據我的經驗,自動完成並不總是正確的。

+0

+1謝謝塞爾吉奧。這工作。感謝有關自動完成的提示會牢記在心。 :) – vikmalhotra