Frage

Ich habe zwei Ansichten unter dem anderen. Ich rotiere die folgende Ansicht durch Berührungsempfindung der Top -Ansicht. Beim Versuch, einen Schlag zu machen, wird das abgesagte Ereignis von Berührungen angerufen, bevor das Ereignis der Berührung beendet ist. Während des Bewegens des Fingers begann die Berührungen und berührte sich bewegte Ereignisse, und dann wird das Ereignis von Berührungen am letzten (meistens) aufgerufen. Aber manchmal wird beim langsamen Bewegen das abgesagte Ereignis als Absagen bezeichnet, um die Touch -Ereignisse zu stoppen. Ich konnte also nicht langsam die Sicht drehen. Was kann das Problem sein? Wie vermeidet ich einen anfassenden Ereignis abgesagt?

Hinweis: Ich zeichne einige Grafiken in Ansichten mit Core-Plot-Bibliothek.

War es hilfreich?

Lösung

Wenn Sie eine verwenden UIGestureRecognizers Sie stornieren automatisch Berührungen zu anderen Ansichten, wenn sie ihre Geste erkennen. Sie können dieses Verhalten mit dem ausschalten cancelsTouchesInView Eigentum des Erkenntnisses.

Andere Tipps

Wenn Sie UigesturereConizer nicht direkt verwenden, sind Sie sich der Immobilien -Gesten für die Uitouch bewusst. Ich habe das gleiche Problem und mit diesem Code löste ich es:

if (event.type == UIEventTypeTouches)
{
    NSSet* tmpTouches = [event  touchesForView:m_PhotoView];
    if ([tmpTouches count] == 2)
    {
        UITouch *tmpTouch1 = [[tmpTouches allObjects] objectAtIndex:0];
        UITouch *tmpTouch2 = [[tmpTouches allObjects] objectAtIndex:1];
        if ((tmpTouch1 != nil)&&(tmpTouch2 != nil))
        {
            UIGestureRecognizer * tmpG;
            if ([tmpTouch1.gestureRecognizers count] > 0)
            {
                tmpG = [tmpTouch1.gestureRecognizers objectAtIndex:0];
                tmpG.cancelsTouchesInView = NO;
            }
            if ([tmpTouch2.gestureRecognizers count] > 0)
            {
                tmpG = [tmpTouch2.gestureRecognizers objectAtIndex:0];
                tmpG.cancelsTouchesInView = NO;
            }
            // Code ...
        }
    }
}

Achten Sie auch auf uiswipegestureCognizer. Dies verursachte das Problem für mich und wird nach dem Einstellen gelöst

[recognizer setCancelsTouchesInView:FALSE];

Wenn ein Bildlaufansicht ist involviert, Deaktivieren seine Eigenschaftsinhaltsberührung Kann auf Scroll stornieren im Storybord.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top