iOS 6 UIGestures (Swipe) funktioniert nicht mehr mit QLPreviewController

8

In iOS 6 Beta 4 und iOS 5.1.1 hatte ich Links / Rechts-Swipes, mit denen Benutzer zwischen verschiedenen QLPreviewControllern wischen können, die in einem UIViewController gehostet werden.

In der veröffentlichten Version von iOS 6 werden die Swipes jetzt komplett ignoriert.

Es wurde versucht, eine UIView als Unteransicht des Vorschau-Controllers zu platzieren, um zu versuchen, dass die Vorschau, die den Vorschau-Controller hostet, die Swipes abfängt, bevor der Vorschau-Controller sie schlucken kann, aber diese werden nie ausgelöst.

>

Jemand hat das gesehen oder kennt eine Arbeit.

Danke,

    
Ben Whiting 21.09.2012, 12:43
quelle

3 Antworten

2

Ich hatte das gleiche Problem, aber mit UITapGestureRecognizer funktioniert nicht auf QLPreviewController. In iOS 6 ist das Ding wie ein schwarzes Loch für UIGestureRecognizer Objekte ... nichts macht es da raus!

Ich habe jedoch einen Workaround gefunden. Ich untergliedere QLPreviewController, also habe ich in meiner Unterklasse die (relativ) neue viewWillLayoutSubviews-Methode missbraucht und das folgende Snippet hinzugefügt:

%Vor%

Es mag übertrieben sein, aber ich habe mich im Grunde genommen mit all den kurzen Unteransichten beschäftigt und ihnen eine Ansicht hinzugefügt, die die Geste akzeptieren würde. Ich ging mit .002 Alpha, weil es die Gesten wieder ignoriert würde, wenn man es niedriger stellt.

    
ghostatron 28.09.2012, 01:12
quelle
2

Ich habe auch festgestellt, dass UIGestureRecognizers mit demselben Code nicht mehr unter iOS 6 funktioniert. Aber das ist nicht so komplett kaputt. Apple Development Beispielprojekt "SimpleGestureRecognizers" funktioniert noch. Nach dem Vergleich des Codes habe ich festgestellt, dass "addGestureRecognizer" das Problem (neben all den anderen Schritten, die Sie unter IB getan haben), gelöst hat. Wenn Sie einen Ihrer IBOutlets-Namen leftSwiftRecognizer verwenden, können Sie Folgendes tun:

%Vor%     
icezee 01.11.2012 07:52
quelle
1

Ihre versuchte Lösung war nahe, aber wahrscheinlich rückwärts von dem, was Sie hätten tun sollen. Fügen Sie den Vorschau-Controller als Unteransicht der UIView hinzu, anstatt eine weitere Ansicht als Unteransicht des Vorschau-Controllers hinzuzufügen.

Betrachten Sie den Vorschau-Controller in einer Standard-UIView. Ordnen Sie dann Ihre Gesten der UGiew-Sammlung "GestenRecognizers" zu und entfernen Sie sie aus der Sammlung des QLPreviewControllers.

Ich bin mir nicht sicher, warum sich das geändert hat, aber ich hatte das gleiche Problem mit meiner App, außer mir war es das UITableView, das nicht mehr scrollte.

    
David Morton 21.09.2012 17:39
quelle