2016-04-28 29 views
12

Al momento, sto animando uno UIWebView dalla parte inferiore dello schermo verso l'alto. Man mano che lo UIWebView si anima verso l'alto diventa intoccabile per - % della durata.UIWebView animato non risponde ai tocchi durante l'animazione

Se tocco la destinazione finale UIWebviews o il livello del modello, i tap sono registrati e il Webview risponde in modo appropriato.

Perché è questo? E quali soluzioni ci sono per toccare toccando in movimento/animazione UIWebViews?

Per esemplificare ulteriormente questo, ho creato un progetto parallelo che mostra un'animazione UIWebView verso l'alto. I quadrati viola rappresentano gli eventi tattili sul livello di presentazione, mentre i quadrati blu rappresentano gli eventi tattili al di fuori del livello di presentazione.

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

Come visto nell'esempio, UIViewAnimationOptionAllowUserInteraction è impostato nel blocco UViewAnimation.

+0

Sembra lo stesso problema che hai avuto su un'altra domanda su come diventare il primo soccorritore durante l'animazione. La soluzione sarà sulla stessa linea. – danh

+0

Com'è possibile che questa domanda (che è ok ma niente di speciale) abbia guadagnato finora 5 voti positivi su 10? Sembra un po 'insolito. – danh

+0

@danh Nell'esempio precedente era un UITextField che animava verso l'alto, così ho potuto facilmente creare un hit test e rendere il campo di testo il primo risponditore. Poiché questo esempio è un UIWebView, non sono in grado di inviare un evento tap ad esso. –

risposta

0

A UIWebView è un layout complicato di elementi Web. Per ridisegnare che durante l'animazione non c'è semplicemente abbastanza tempo a disposizione per ridisegnare completamente UIWebView, tenere i controlli in esso disponibili per l'interazione e fare l'animazione.

Tuttavia ci sono alcune impostazioni per questo all'interno di un CALayer su cosa fare con i suoi contenuti durante l'animazione. Vorrei iniziare a esaminarlo.