2010-08-04 5 views
1

Comment envoyer des événements tactiles de uiview à uiwebview sans utiliser de méthodes non documentées?Transmettre des événements tactiles de uiview à uiwebview

Mon problème est de masquer/montrer la barre de tabulation et de navigation lorsque l'utilisateur touche le uiwebview. cela nécessite en fait une personnalisation de uiwebview qui n'est pas conseillée. J'ai l'intention de mettre une vue transparente sur le uiwebview et ensuite recevoir les événements tactiles à partir de là, les utiliser et ensuite l'envoyer à uiwebview. Pour cela, je veux savoir comment envoyer les événements tactiles à la vue Web à partir de la vue.

Répondre

0

Ceci est totalement possible. Vous devez sous-classer l'UIView qui contient l'UIWebView ou l'UIWindow, puis relayer l'événement tactile. Voir this post.

0

Cela semble être impossible. Vous pouvez capturer des événements tactiles avec une superposition personnalisée, mais l'invocation de vos propres événements UITouch n'est pas possible, pas plus qu'il n'est possible de modifier la vue cible d'un objet UITouch existant. En d'autres termes: dès qu'un doigt touche l'écran, l'événement tactile créé contient la cible. Après cela, il est gravé dans la pierre et le webview ne répondra jamais. (Quelqu'un s'il vous plaît me prouver!)

La meilleure chose suivante alors - que je ne recommande pas - est de déterminer si la page est défilée, en attendant

[[browser stringByEvaluatingJavaScriptFromString:@"scrollY+scrollX"] intValue]; 

pour devenir non nulle, dans un boucle. L'évaluation Javascript semble un peu lente; Au moins, vous ne pouvez pas le faire 10 fois par seconde.

Questions connexes