Tengo una aplicación en la que renderizo archivos HTML locales en un UIWebView. Sin embargo, los archivos a veces son grandes y llegar a donde usted quiere lleva mucho tiempo con la velocidad de desplazamiento predeterminada. ¿Hay alguna manera de aumentar la velocidad de desplazamiento vertical de un UIWebView?iPhone dev: ¿Aumenta la velocidad de desplazamiento en UIWebView?
Respuesta
En iOS 5 podemos acceder a la propiedad scrollView
del UIWebView
.
Si el idioma de iOS 5+, sólo tiene que llamar:
webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;
Buscar una subvista de UIWebView que responde a -setScrollDecelerationFactor: (es UIScroller - una clase privada que es la única subvista de UIScrollView). Usted encontrará que toma los mismos factores de deceleración definida para la clase UIScrollView pública:
- (void)webViewDidFinishLoad:(UIWebView *)aView {
id decelerator = [aView viewWithSelector:@selector(setScrollDecelerationFactor:)];
[decelerator setScrollDecelerationFactor:UIScrollViewDecelerationRateNormal];
}
Tenga en cuenta que el método que estoy usando viewWithSelector: es un método que se define en una categoría de UIView. Presumiblemente, si UIWebView cambia en el futuro, mi búsqueda será nula y este método se convertirá en no operativo.
¿Has considerado agregar # etiquetas en tu html en límites significativos?
En realidad, podría utilizar la interfaz de usuario nativa para implementar marcadores o una tabla de contenido para facilitar la navegación, o simplemente incrustar enlaces a los destinos adecuados directamente en su html.
Si acelera el desplazamiento, su aplicación corre el riesgo de rechazarse por no ser estándar, ya que puede confundir a los usuarios que están acostumbrados a las vistas de la web que se desplazan con una "sensación" estándar.
Encuentra una vista secundaria de UIWebView que es un UIScrollView, a continuación, establezca decelerationRate a UIScrollViewDecelerationRateNormal. Esto hace que UIWebView sea tan rápido como un UIScrollView ordinario.
En iOS 4/5, podemos simplemente usar la última subvista de UIWebView.
UIScrollView *scroll = [webView.subviews lastObject];
if ([scroll isKindOfClass:[UIScrollView class]]) {
scroll.decelerationRate = UIScrollViewDecelerationRateNormal;
}
El valor predeterminado decelerationRate de UIScrollView de UIWebView es 0,989324, mientras UIScrollViewDecelerationRateFast es de 0.99 y UIScrollViewDecelerationRateNormal es 0,998.
Este método no utiliza ninguna API privada.
- 1. ¿Cómo aumentar la velocidad de desplazamiento de UIWebView?
- 2. ¿Aumenta la velocidad de PHP?
- 3. iphone UIWebView almacenar la posición de desplazamiento actual?
- 4. iPhone Dev: UIWebView baseUrl a recursos en la carpeta Documentos no paquete de aplicaciones
- 5. Android dev time vs iPhone dev time
- 6. iPhone - ¿Es posible ocultar la barra de desplazamiento nativa en UIWebView?
- 7. iPhone: pop botón en UIWebView
- 8. Habilitar cookies en UIWebView (iPhone)
- 9. cómo establecer la posición de desplazamiento en uiwebview
- 10. ¿Cómo puedo obtener la posición de desplazamiento actual en UIWebView
- 11. iPhone Dev - Crear UIButton Manualmente
- 12. Cómo deshabilitar el desplazamiento horizontal de UIWebview?
- 13. ¿Cómo aumentar la velocidad de desplazamiento lento en un JScrollPane?
- 14. Cambiando CSS sobre la marcha en un UIWebView en iPhone
- 15. Reducir la velocidad del desplazamiento suave en la vista de desplazamiento
- 16. ¿Aumenta la velocidad para la creación de tablas MySQL en Django?
- 17. UIWebView enlaces de teléfono detección en iphone
- 18. Cómo cambiar el fondo del desplazamiento de UIWebView?
- 19. Desplazamiento automático cuando contentEditable/designMode en un UIWebView
- 20. Vista de lista de Android ralentizar la velocidad de desplazamiento
- 21. Detectar la velocidad de desplazamiento de GridView - Android
- 22. iphone uiwebview vista inicial en blanco
- 23. ¿Cómo borrar la lista anterior en UIWebview en iPhone?
- 24. iphone dev: cómo detectar excepción 'NSRangeException'
- 25. CLLocationManager - Calcular la velocidad en tiempo real en el iPhone
- 26. iPhone dev - ¿Por qué usa 8MB?
- 27. iPhone UIWebView reproduciendo MP3. Protocolo de despido?
- 28. iPhone - UIWebview no guarda la autenticación en los sitios
- 29. iPhone dev - performSelector: withObject: afterDelay o NSTimer?
- 30. iPhone Mesa de desplazamiento horizontal
yo no era capaz de hacer esto. Yo uso el siguiente código: 'para (UIView * subvista en self.currentScrollView.subviews) { si ([subvista respondsToSelector: @selector (setScrollDecelerationFactor :)]) { [setScrollDecelerationFactor subvista: UIScrollViewDecelerationRateNormal];' Pero esa condición nunca es verdadera. ¿Alguna ayuda? –
My -viewWithSelector: el método atraviesa la jerarquía de vistas más allá de las subvistas. Es probable que UIScroller no sea un descendiente directo de UIWebView, por lo que su código no lo está encontrando. – MrO
esto hará que tu aplicación sea rechazada. –