Hareket tanımlayıcınız için yeni bir görünüm oluşturmayın. Tanıyıcı bir locationInView: yöntemini uygular. Hassas bölgeyi içeren görünüm için ayarlayın. HandleGesture üzerinde, bu gibi önem verdiğiniz bölgeyi vurun:
0) Tüm bunları, ilgilendiğiniz bölgeyi içeren görünümde yapın. Sadece jest tanıyıcı için özel bir görünüm eklemeyin.
1) Kur mySensitiveRect
@property (assign, nonatomic) CGRect mySensitiveRect;
@synthesize mySensitiveRect=_mySensitiveRect;
self.mySensitiveRect = CGRectMake(0.0, 240.0, 320.0, 240.0);
2) sizin gestureRecognizer oluşturun:
gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
[self.view addGestureRecognizer:gr];
// if not using ARC, you should [gr release];
// mySensitiveRect coords are in the coordinate system of self.view
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer {
CGPoint p = [gestureRecognizer locationInView:self.view];
if (CGRectContainsPoint(mySensitiveRect, p)) {
NSLog(@"got a tap in the region i care about");
} else {
NSLog(@"got a tap, but not where i need it");
}
}
duyarlı rect MyView koordinat sisteminde başlatıldı edilmelidir, aynı görünüm hangi tanıyıcıyı tutturmak için.
Üzgünüz, bu ne yapacak? ve mySensitiveRect değişkeni için kullanıyorum (0, 0, 320, 480)? Tam bir örneğiniz var mı? Teşekkürler: D –
@DavidMurray: Umarım bu daha temiz – danh
Teşekkürler, bunu yaptı. :-) –