iPad アプリ (XCode 4.6、ストーリーボード、iOS 6.2) を持っています。私はこのように構成されたシーンを持っています:
- UIView (subViewData - #2 の右側の象限をカバーし、その下と右側は #2 の時間と名前をカバーしていない - 予定情報 (顧客名、期間は影付き) を含む
- UIView (subViewGrid - 下半分をカバーします (画像では、左余白に時間が含まれ、上部余白に名前が含まれています。)
- UIScrollView (下半分のビューをカバー)
- UIView ------- UIView (ウィンドウの上半分に 1 つ、下半分にもう 1 つ)
- 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");
}
}
問題は、なぜタップをキャプチャしないのですか? 認識コードは、コントローラーまたはタップを取得していると思われるビューにあるはずですか? この件に関して見つけられるほとんどすべてを読みましたが、この特定のシナリオでは何も見つかりません。助けていただければ幸いです。