? Estoy intentando dibujar un gráfico que es indefinidamente grande horizontalmente, y de la misma altura que la pantalla. He agregado un UIScrollView y una subclase de UIView dentro de él, que implementa el método -drawRect:
. En el simulador, todo funciona bien, pero en el dispositivo, parece que no puede dibujar el gráfico una vez que alcanza un determinado tamaño.¿Cómo puedo desplazar una UIView de tamaño indefinido dentro de un UIScrollView
Ya estoy almacenando en caché casi todo lo que puedo, y básicamente solo llamo a CGContextAddLineToPoint en la sección -drawRect:
. Solo dibujo lo que está visible en la pantalla. Tengo un delegado en el UIScrollView que escucha -scrollViewDidScroll:
que luego le dice al gráfico que vuelva a dibujarse ([graphView setNeedsDisplay]
).
Encontré un método que me dice que debe anular el método +layerClass
y devolver [CATiledLayer class]
. Esto permite que el gráfico dibuje realmente en el dispositivo, pero funciona muy mal. Es increíblemente lento dibujar realmente, y el desvanecimiento que ocurre es indeseable.
¿Alguna sugerencia?
No es una respuesta muy útil, creo. Obviamente, hay una manera de hacerlo, ya que cosas como Google Maps parecen ser capaces de funcionar bien. No está picado en absoluto, y parece ser bastante bueno dibujando rápidamente, incluso cuando tiene que descargar los datos primero. –
Solo digo que no puedes hacerlo con un solo control de IU porque su marco será demasiado grande.Probablemente exista una forma en que puede colocar varias vistas juntas horizontalmente, pero es probable que tenga que gestionarlas usted mismo (destruir/crear sobre la marcha). –