Ich habe 2 UIPageViewControllers in einem anderen, beide mit horizontalem Scroll. Ein Vollbild mit allen Benutzerinformationen, ein weiteres - eine Fotogalerie für diesen Benutzer. Verhalten: Wenn ich alle Benutzerfotos wische, wischt es den Vollbildmodus. Aber manchmal kann ich Fotos nicht wischen, scheint wie diese Geste blockiert ist, und es wischt nur den ersten Pager. Aber es öffnet sich, wenn ich die Wischgeste zurück mache. Hier ist ein Video, über das ich spreche: https://youtu.be/Hr7tDKNv15A Hilf mir, Fehler zu finden, der es verursacht, jetzt kann ich mir nicht vorstellen, wie ich das debuggen muss.2 UIPageViewControllers Gestenkonflikt
overrided hitTest der Containeransicht, die innere Pager speichert:
override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
if pointInside(point, withEvent: event) {
print("Inside")
print("Self view:\(self)")
print("Self subviewsview:\(self.subviews)")
print("Self subviewsview of subview:\(self.subviews[0].subviews)")
return self.subviews[0].subviews[0]
} else {
print("Outside")
return nil
}
}
Das ist meine Ausgabe ist, wenn ich Fotos berühren:
Inside
Self view:<armeniaApp.debugGesture: 0x7f7f8be46e60; frame = (0 0; 400 400); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7f7f8be1e7c0>>
Self subviewsview:[<_UIPageViewControllerContentView: 0x7f7f8be920a0; frame = (0 0; 400 400); clipsToBounds = YES; opaque = NO; autoresize = W+H; layer = <CALayer: 0x7f7f89ff1e00>>]
Self subviewsview of subview:[<_UIQueuingScrollView: 0x7f7f8a836e00; frame = (0 0; 400 400); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7f7f8be81db0>; layer = <CALayer: 0x7f7f8be522b0>; contentOffset: {400, 0}; contentSize: {1200, 400}>]
So ist die Geste, die ich in UIQueuingScrollView
Läden müssen aber was ich Müssen Sie als nächstes tun? return self.subviews[0].subviews[0]
nicht
Kann das Gesten nicht zugreifen, und so werden Delegatmethoden nicht genannt: C In allen möglichen Plätzen sie sagt, dass GestureRecognizer Array (Irgendwelche Ideen leer –
Sorry, entdeckte dies nur in der Dokumentation: „Nur wenn Übergang Stil bevölkerten ist 'UIPageViewControllerTransitionStylePageCurl'" –
Sie könnten den 'hitTest:' überschreiben und sicherstellen, dass Berührungen im Inneren des Seitenaufruf-Controllers weitergeleitet werden, wenn weiter geblättert werden muss, aber alles andere wird an den äußeren Seitenaufruf-Controller weitergeleitet? –