短版我的問題:爲UIGestureRecognizers自定義操作(使用自定義參數)
我無法弄清楚如何使我的UITapGestureRecognizer的「行動」採取額外的參數,和實際使用它們。
這裏是我的問題的破敗:
我試圖讓這個我的iPad應用程序記錄(含的NSLog)時,他們按我的應用程序的UIButtons之一發生的UITouch的座標。觸摸的位置需要相對於被觸摸的按鈕。
我做了什麼:
我實現了一個UITapGestureRecognizer並將其添加到我的每一個按鈕。我的問題是使用動作,因爲它需要對每個按鈕都是動態的。
我現在有這樣的代碼:
UITapGestureRecognizer *iconClickRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(logIcon:withTag:)];
[iconClickRecognizer setNumberOfTapsRequired:1];
[iconClickRecognizer setNumberOfTouchesRequired:1];
[iconClickRecognizer setDelegate:self];
[[self.view viewWithTag:1] addGestureRecognizer:iconClickRecognizer];
[iconClickRecognizer release];
當我知道這個作品,我會用一個for循環通過其標籤的iconClickRecognizer添加到所有的按鈕。
的logIcon:(INT)withTag方法如下所示:
-(void)logIcon:(UIGestureRecognizer *)gestureRecognizer withTag:(int)tag {
NSLog(@"tag X: %f", [gestureRecognizer locationInView:(UIView*)[self.view viewWithTag:tag]].x);
NSLog(@"tag Y: %f", [gestureRecognizer locationInView:(UIView*)[self.view viewWithTag:tag]].y);
}
什麼不工作:
當我硬編碼標籤進入logIcon方法,它記錄正確的信息。但是,我不知道如何使這個方法變爲動態,並且實際上使用了「tag」參數。
任何幫助將不勝感激。
謝謝, 亞歷克斯
這是處理它的最好方法。標記視圖,並從手勢識別器訪問視圖。很好的答案! – WendiKidd 2012-11-16 18:47:38