我有一個iPad應用程序(XCode 4.6,Storyboards,iOS 6.2)。我有一個場景組成是這樣的:UITapGestureRecognizer不捕獲水龍頭......「捕獲」代碼應該去哪裏?
- 的UIView(subViewData - 佔地面積#2的右象限,下方和右側未覆蓋的#2的時間和名稱包含預約信息(卡斯特名,持續時間陰影)
- 的UIView(subViewGrid - 封面下半部分(圖像,它包含在整個上邊距左邊距和名稱倍。)
- 的UIScrollView(包括下半部視圖)
- 的UIView - ------ UIView(一個在窗口的上半部分,另一個在下半部分)
- UIViewC ontroller(名爲CalendarViewController)
這是代碼初始化UITapGestureRecognizer在CalendarViewController的-viewDidLoad發現:
// setup for tap recognizer
UITapGestureRecognizer *fingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(singleFingerTap:)];
fingerTap.numberOfTapsRequired = 1;
fingerTap.numberOfTouchesRequired = 1;
[subViewData addGestureRecognizer:fingerTap];
這是subViewData代碼(#1),該沒有執行:
- (void)singleFingerTap:(UITapGestureRecognizer*)gesture {
CGPoint pt = [gesture locationInView:self];
UIView *v = [self hitTest:pt withEvent:nil];
if(v.tag == 100) // if this is for calendar, return
return;
CGRect dataRect = CGRectMake(110.0,48.0,670.0,1450);
CGPoint dataPoint = CGPointMake(pt.x, pt.y);
// check to see if point is within the rectangle
if(!CGRectContainsPoint(dataRect, dataPoint)) {
NSLog(@"\n\nNOT within subViewData");
return;
}
else {
NSLog(@"\n\nIS within subViewData");
}
}
問題是爲什麼它沒有捕獲水龍頭?識別器代碼是否應該放在控制器或視圖中,據說可以獲取水龍頭?我已閱讀了有關該主題的幾乎所有內容,但無法在此特定情況下找到任何內容。非常感謝幫助。
試過了,仍然不起作用... – SpokaneDude
好的,看看我的編輯添加進一步的建議。 – matt
我澄清了問題,給子視圖命名......應該沒有邏輯上的原因,沒有捕獲到水龍頭。我應該提到,我正在「繪製」subViewData(這就是我如何獲得預約信息到subViewData中......它也有一個值爲2的阿爾法。 – SpokaneDude