2011-03-18 10 views
6

Tengo una UIWebView con enlaces en el texto que abre Safari si se presiona.UIWebView: ¿Cancelar la apertura de un enlace cuando "retocar" está fuera del enlace?

Si un usuario toca un enlace, se oscurece ... pero si quiere cancelar presionando el enlace moviendo su dedo primero, se queda oscuro, y soltando el dedo en cualquier lugar se abre el enlace.

¿Hay alguna manera de permitir que el usuario "cancele" su "clic" alejando su dedo, siguiendo el comportamiento del botón "retoque adentro"?

Respuesta

2

No hay forma de hacer exactamente lo que pidió con el SDK público.
La mejor respuesta que puedo pensar es realizar un seguimiento de los eventos de toque final y toque final para el UIWebView. A continuación, agregue un UIWebviewDelegate, y para la interfaz de este delegado, agregue un valor lógico bLastTouchDidWander (nombre es puramente por ejemplo)

En una anulada, se establece en false bLastTouchDidWander.

En un toque ARRIBA, mides qué tan lejos se movió el toque. Si se movió más de una cantidad establecida, considere esto un "retoque afuera", y configure bLasTTouchDidWander en verdadero.

Luego, para el mensaje webView:shouldStartLoadWithRequest:navigationType: del UIWebViewDelegate, si bLastTouchDidWander es verdadero, no siga el enlace.

+0

idea interesante, tendré que intentarlo. – Epaga

+0

aún no lo he probado, por lo que no puedo confirmar si funciona, pero acepto porque usted es el único que respondió. :) ¡Gracias! – Epaga

Cuestiones relacionadas