AVISO: Cualquier pregunta que no cumpla ninguno de estos criterios podrá ser borrada sin previo aviso.

0
1

Hola a todos,

Estoy terminando mi proyecto basado en el framework Baker pero me falta un detalle importante y es que, por defecto, mi aplicación está respondiendo ante el arrastre vertical por parte del usuario y quiero que deje de hacerlo. El arrastre horizontal me sirve para pasar página pero el vertical solo sirve para mostrar un fondo gris sin ningún contenido.

Creo que es un UIWebView quien maneja este asunto pero no lo tengo muy claro, he estado revisando la info de apple sobre esta clase pero no consigo dar en el clavo... ¿alguna idea?

Gracias ;)

preguntado 02 Feb '11, 10:14

fratoal's gravatar image

fratoal
1.4k124159172

Hace poco estuve buscando informacion sobre lo mismo... y acabe encontrando nada. Lo unico que encontre fue que mediante IB puedes deshabilitar el multitouch de una UIWebView... pero eso comporta perder la interactividad de este objeto. No tendras ni scroll horizontal, ni vertical, pero tampoco te dejara usar links ni nada dentro del UIWebView. A la conclusion que llegue, fue acostumbrar-me a este scroll i cambiar ese fondo gris por uno "mejor". Lo pongo como comentario pq en si esto no es una respuesta... es una experiencia. Es posible que exista alguna cosa... a ver si alguien no muestra luz en este tema.

(02 Feb '11, 11:33) urikpd ♦

Gracias Uri, si te parece, voy a hacer una pregunta para que me expliques como cambiar el fondo, aunque no sea una solución, al menos le daré sentido a este comportamiento.

Si alguien tiene la solución sería perfecto ;)

(02 Feb '11, 11:58) fratoal

¿Por qué no utilizas un UIScrollView al que sí puedes desactivar una de las direcciones para hacer el efecto de pasar páginas?

(02 Feb '11, 15:17) YoNoSoyTu

En la app hay un UIScrollView, ¿podría ser aquí donde tengo que controlar esto? ¿como se podría evitar?

(02 Feb '11, 15:26) fratoal

Hola,

Mira, no se si esto puede entrar en conflicto con el framework, ya que no lo he utilizado, pero no perdes nada probando:

Hace un delegate de la UIWebView y utiliza este metodo:

-(void)webViewDidFinishLoad:(UIWebView *)webView{

    [webView stringByEvaluatingJavaScriptFromString:@"document.ontouchstart = function(e){ e.preventDefault(); }"];

}

Espero te sirva, Saludos

enlace permanente

respondido 02 Feb '11, 23:09

homer0's gravatar image

homer0
3502313

Gracias Homer0, he encontrado donde implementan ese metodo y he agregado tu opción. La aplicación dejo de responder a los desplazamientos verticales pero también a los horizontales. Estoy más verde que una manzana, no se si podrías echarle un vistazo al metodo para ver si hay alguna solución.

(03 Feb '11, 09:25) fratoal

Hola,

Mira, me parece que te tenes que poner a jugar con JS y la variable 'e' que le llega a la funcion del evento, para detectar si estas sobre el documento o sobre algun elemento generado por el framework. Yo ahora mismo no me puedo poner a probar, pero yo empezaria por ahi.

Saludos

(03 Feb '11, 22:49) homer0

Gracias a todos, en principio he optado por dejarlo tal como está. Un saludo.

(15 Feb '11, 16:14) fratoal
Tu respuesta:
Activar/desactivar vista previa

Sobre esta pregunta

Etiquetas de la pregunta:

×53
×4

Pregunta realizada el: 02 Feb '11, 10:14

Pregunta visitada: 1,376 veces

Última modificación: 15 Feb '11, 16:14

Seguir esta pregunta

Por Email:

Una vez que entres podrás suscribirte desde aquí para recibir actualizaciones

Por RSS:

Respuestas

Respuestas y Comentarios

Realizar Donación