Im Allgemeinen sollten Sie nicht versuchen, das Wischen zu deaktivieren, um die Funktionalität zu schließen, da Benutzer erwarten, dass sich alle Formular- / Seitenblätter in allen Apps gleich verhalten. Stattdessen möchten Sie möglicherweise einen Präsentationsstil im Vollbildmodus verwenden. Wenn Sie ein Blatt verwenden möchten, das nicht durch Streichen entfernt werden kann, stellen Sie isModalInPresentation = true
es ein. Beachten Sie jedoch, dass das Blatt weiterhin vertikal nach unten gezogen werden kann und beim Loslassen der Berührung wieder nach oben springt. Schauen Sie sich die aus UIAdaptivePresentationControllerDelegate Dokumentation zu reagieren , wenn der Benutzer es über Swipe abzutun versucht, neben anderen Maßnahmen.
Wenn Sie ein Szenario haben, in dem die Gesten- oder Berührungsbehandlung Ihrer App durch die Funktion zum Streichen zum Streichen beeinflusst wird, habe ich von einem Apple-Techniker einige Ratschläge erhalten, wie dies behoben werden kann.
Wenn Sie verhindern können, dass die Pan-Gestenerkennung des Systems beginnt, wird die gestische Entlassung verhindert. Einige Möglichkeiten, dies zu tun:
Wenn Ihre Leinwandzeichnung mit einer Gestenerkennung wie Ihrer eigenen UIGestureRecognizer
Unterklasse erstellt wurde, geben Sie die began
Phase vor der Entlassungsgeste des Blattes ein. Wenn Sie so schnell wie möglich erkennen UIPanGestureRecognizer
, gewinnen Sie und die Entlassungsgeste des Blattes wird untergraben.
Wenn Ihre Leinwandzeichnung mit einem Gestenerkenner erstellt wurde, richten Sie mit -shouldBeRequiredToFailByGestureRecognizer:
(oder der zugehörigen Delegatenmethode) eine dynamische Fehleranforderung ein , bei der Sie zurückkehren, NO
wenn der übergebene Gestenerkenner a ist UIPanGestureRecognizer
.
Wenn Ihre Leinwandzeichnung mit manuellem Touch-Handling (z. B. touchesBegan:
) erstellt wurde, überschreiben Sie -gestureRecognizerShouldBegin
Ihre Touch-Handling-Ansicht und kehren Sie zurück, NO
wenn der übergebene Gestenerkenner a ist UIPanGestureRecognizer
.
Mit meinem Setup hat sich # 3 als sehr gut erwiesen. Auf diese Weise kann der Benutzer außerhalb der Zeichenfläche nach unten wischen, um sie zu schließen (z. B. in der Navigationsleiste), während der Benutzer zeichnen kann, ohne das Blatt zu bewegen, wie es zu erwarten wäre.
Ich kann nicht empfehlen, nach der Geste zu suchen, um sie zu deaktivieren, da sie ziemlich dynamisch zu sein scheint und sich beispielsweise beim Wechsel zwischen verschiedenen Größenklassen wieder aktivieren kann. Dies könnte sich in zukünftigen Versionen ändern.