Deaktivieren Sie die touch-events auf bestimmte Bereiche des iPhone-Bildschirm

Möchte ich deaktivieren Sie berührt alle Bereiche des Bildschirms abgesehen von ein bestimmtes paar Punkte (e.g-Tasten). I. e. Ich will nicht 'touchesBegan' auslösen, wenn ich Tippen Sie auf alles andere als eine Taste. Aufruf

    self.view.userInteractionEnabled = NO;

hat den gewünschten Effekt nicht registrieren Berührungen, aber dann kann ich natürlich nicht Tippen Sie auf beliebige Tasten. Ich habe im Grunde wollen Sie die-Taste, um noch zu arbeiten, auch wenn es 5 Punkte berühren Sie den Bildschirm, d.h. alle touch-Eingaben verwendet wurden, und der button repräsentiert den 6. Platz.

Ist das möglich?

Habe ich versucht, Sie eine Ansicht mit userInteraction deaktiviert unter meine Tasten, aber er registriert noch berührt, wenn der Benutzer tippt auf den Bildschirm. Es scheint der einzige Weg zu deaktivieren Sie die touch-Registrierung wird auf dem gesamten Bildschirm (auf dem Eltern-UIView).

UPDATE:
Ich habe versucht, mit gesture recognizers, um alle touch-events, und ignorieren diejenigen, die nicht qualifizieren. Hier ist mein code:

@interface ViewController : UIViewController <UIGestureRecognizerDelegate>

...

    - (void)viewDidLoad
{
    [super viewDidLoad];
    UIGestureRecognizer *allRecognizer = [[UIGestureRecognizer alloc] initWithTarget:self action:nil];
    allRecognizer.delegate = self;
    [self.view addGestureRecognizer:allRecognizer];
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    CGPoint coords = [touch locationInView:self.view];
    NSLog(@"Coords: %g, %g", coords.x, coords.y);
    if (coords.y < 200) {
    [self ignoreTouch:touch forEvent:nil];
    return TRUE;
}
return FALSE;

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    NSLog(@"%i touch(es)", [touches count]);
}

Jedoch ist der Bildschirm immer noch "liest" das berührt, wenn ich statt 5 Finger nach unten, die 6. man wird nicht ausgelöst durch drücken einer Taste...

InformationsquelleAutor Smikey | 2013-08-29
Schreibe einen Kommentar