Hinzufügen eines UITapGestureRecognizer zu einer Ansicht, dann entfernen scheint, um Kurzschluss Taste-events

In den folgenden code bin ich aufspringen eine Bildansicht als das Ergebnis einer Benutzer touchUpInside auf eine einfache info-button. Es gibt auch andere Tasten auf der Ansicht.

Entlassen die info, die ich Hinzugefügt ein UITapGestureRecognizer zu meinem Controller anzeigen und ausblenden der anzeigen wenn der Stick erkannt wird.

Wenn ich nicht entfernen Sie die tapGestureRecognizer, wird die Aktion aufgerufen wird jedes mal einige.

Selbst wenn ich tun, entfernen Sie die Geste-Aktion, keine Knöpfe erhalten touchUpInside Ereignisse, sobald diese gestik-Erkennung Hinzugefügt. Warum?

Code von meinem MainViewController

- (void) dismissInfo: (UITapGestureRecognizer *)gesture {
    [kInfoView setHidden: YES];
    [gesture removeTarget: self action: NULL];
}

- (IBAction) displayInfo {      
    CGRect startFrame = CGRectMake(725, 25, 0, 0), origFrame;
    CGFloat yCenter = [kInfoView frame].size.height/2 + 200;
    CGPoint startCenter = CGPointMake(724, 25), displayCenter = CGPointMake(384, yCenter);
    UITapGestureRecognizer *g = [[UITapGestureRecognizer alloc] initWithTarget: self
                                                                        action: @selector(dismissInfo:)];

    [self.view addGestureRecognizer: g];
    origFrame = [kInfoView frame];
    [kInfoView setCenter: startCenter];
    [kInfoView setHidden: NO];
    [kInfoView setFrame: startFrame];

    [UIView beginAnimations: @"info" context: nil];
    [UIView setAnimationDuration: .5];
    [UIView setAnimationDelegate: self];

    [kInfoView setFrame: origFrame];
    [kInfoView setCenter: displayCenter];

    [UIView commitAnimations];
}

InformationsquelleAutor purplehey | 2010-05-29

Schreibe einen Kommentar