我有一个 iPad 应用程序(XCode 4.6、Storyboards、iOS 6.2)。我有一个这样组成的场景:
- UIView(subViewData - 覆盖#2 的右象限,下方和右侧不包括#2 的时间和名称 - 包含约会信息(客户名称,持续时间为阴影)
- UIView(subViewGrid - 覆盖下半部分(在图像中,它包含左边距的时间和上边距的名称。)
- UIScrollView(覆盖下半部分视图)
- UIView ------- UIView(一个在窗口的上半部分,另一个在下半部分)
- UIViewController(命名为 CalendarViewController)
这是初始化在 CalendarViewController 的 -viewDidLoad 中找到的 UITapGestureRecognizer 的代码:
// 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");
}
}
问题是它为什么不捕获水龙头?识别器代码应该在控制器中还是应该在被点击的视图中?我已经阅读了几乎所有我能找到的关于这个主题的东西,但是在这个特定的场景中找不到任何东西。非常感谢您的帮助。