2012-04-24 42 views
6

Tengo un UIWebView que presenta una página que contiene campos de entrada().Evitar que UIWebView se desplace cuando aparezca el teclado

Cuando el usuario toca el campo para ingresar datos, UIWebView se desplaza hacia arriba y hacia la izquierda para que el campo permanezca visible para el usuario. Bien ok.

No me importa que esté desplazado hacia arriba (porque todo lo que está debajo de mi formulario está oculto por el teclado) pero me gustaría evitar que la vista se desplace hacia la izquierda.

¿Hay alguna manera (encabezados en la página html o código iOS) para evitar este comportamiento?

Gracias

Respuesta

0

Primero tendrán que capturar la pantalla de un teclado utilizando UIKeyboardWillShowNotification.

Luego, restringe el ancho del tamaño del contenido de UIScrollView (de UIWebview) al ancho de la pantalla, lo que garantizará que la pantalla no se desplace horizontalmente.

+3

no funciona para mí – Remover

+0

Estoy enfrentando el mismo problema, cuando el usuario selecciona el cuadro de entrada, la vista web se desplaza hacia la izquierda y tengo una búsqueda, por lo que no puedo restringir el ancho al tamaño de la pantalla. ¿Alguna idea de cómo puedo evitar el desplazamiento hacia la izquierda? – coder

+0

intenté deshabilitar el desplazamiento ('aScrollView.scrollEnabled = NO') cuando el Teclado está ENCENDIDO. ? – Roshit

1

No sé cómo prevenir el desplazamiento del todo, pero si no te importa un poco de fluctuación, se puede añadir este controlador para el campo de entrada:

onfocus="setTimeout('window.scroll(0,0)',100)" 
0

no es bonito pero eficaz:

Si no desea que su web View para desplazarse en absoluto, puede implementar UIScrollViewDelegate del UIWebView y establecer el contentOffset a 0 en scrollViewDidScroll

aWebView.scrollView.delegate = self 

func scrollViewDidScroll(scrollView: UIScrollView) { 
    scrollView.contentOffset = CGPointMake(0, 0) 
} 
+0

En su solución, 'webView.scrollView.isScrollEnabled = false' sería suficiente para evitar el uso de un delegado para eso. Aunque no estoy seguro de que esta respuesta cubra completamente la pregunta. – Ben

Cuestiones relacionadas