2016-04-18 14 views
8

Ich habe eine tableView innerhalb einer pageViewController und beim Streichen auf eine Zelle, um die Option zum Löschen der Zelle die Geste wird nur unter bestimmten Umständen erkannt, sagen Sie Swiped sehr schnell und aggressiv.Wischen zum Löschen auf einem TableView, das in einem PageViewController ist

Ich kann mir vorstellen, dass dies passiert, weil es nicht sicher ist, ob die Wischgeste für die pageView oder die tableView gemeint ist. Gibt es eine Möglichkeit, spezifisch zu bestimmen, wo die Wischgeste stattfindet, um eine schöne, glatte Anzeige der Löschschaltfläche zu ermöglichen?

+0

Sie könnten eine Bearbeitungsschaltfläche hinzufügen. Im Bearbeitungsmodus können Sie dann die Wischgeste des Seitencontrollers deaktivieren (indem Sie den Delegaten auf Null setzen). – Maik639

Antwort

3

Ich hatte das gleiche Problem. Ich habe eine Lösung gefunden, die gut funktioniert.

Setzen Sie dies in Ihre UIPageViewController 's viewDidLoad func.

PageViewControllers haben eine automatisch generierte Unteransicht, die die Gesten verarbeitet. Wir können verhindern, dass diese Teilansichten Inhaltsberührungen löschen. Die Tabellenansicht kann Swipes für die Löschschaltfläche erfassen, während Swipes, die die Gestenanforderungen der Tabellenansicht beim Seitenwischen nicht erfüllen, weiterhin interpretiert werden. Die Schaltfläche zum Löschen wird angezeigt, wenn Sie "aggressiv" halten und streichen oder streichen.

+0

Ich habe dies zu meinem UIPageViewController viewDidLoad hinzugefügt, was passiert, ist manchmal der Swipe, um Shows in der Tabellenansicht zu löschen, aber die meiste Zeit wischt es nur auf die nächste Seite .... – raklos