2016-04-28 8 views
12

Im Moment animiere ich eine UIWebView vom unteren Rand des Bildschirms an die Spitze. Wenn die UIWebView nach oben animiert wird, wird sie für die Dauer 0% nicht mehr erreichbar. - .Animierte UIWebView reagiert nicht auf Berührungen während der Animation

Wenn ich auf das Endziel UIWebviews oder die Modellschicht tippe, werden die Abgriffe registriert und Webview reagiert entsprechend.

Warum ist das? Und welche Lösungen gibt es zum Tippen bewegen/animieren UIWebViews?

Um dies weiter zu veranschaulichen, habe ich ein Nebenprojekt erstellt, das eine UIWebView Animation nach oben zeigt. Die violetten Quadrate repräsentieren Berührungsereignisse auf der Präsentationsebene, während die blauen Quadrate Berührungsereignisse außerhalb der Präsentationsebene darstellen.

https://github.com/AdamBCo/UIWebView-Animation-Issues

Wie in dem Beispiel zu sehen ist, wird in dem UIViewAnimationOptionAllowUserInteractionUViewAnimation Block gesetzt.

+0

Scheint wie das gleiche Problem, das Sie bei einer anderen Frage über Ersthelfer während der Animation hatten. Die Lösung wird in die gleiche Richtung gehen. – danh

+0

Wie kommt es, dass diese Frage (was ist in Ordnung, aber nichts besonderes) hat bisher 5 Stimmen von 10 erhalten? Scheint irgendwie ungewöhnlich. – danh

+0

@danh Im vorherigen Beispiel war es ein UITextField, das nach oben animierte, so dass ich leicht einen Treffertest erstellen und das Textfeld zum Ersthelfer machen konnte. Da dieses Beispiel ein UIWebView ist, kann ich kein TAP-Ereignis an dieses senden. –

Antwort

0

Ein UIWebView ist ein kompliziertes Layout von Webelementen. Um neu zu zeichnen, dass während der Animation einfach nicht genug Zeit zur Verfügung steht, um das UIWebView vollständig neu zu zeichnen, halten Sie die darin enthaltenen Steuerelemente für die Interaktion bereit und machen Sie die Animation.

Es gibt jedoch einige Einstellungen dafür in einem CALayer, was mit seinem Inhalt zu tun ist, wenn es animiert wird. Ich würde mich darum kümmern.