Tengo UIView
dentro de UIScrollView
. Cada vez que cambie el zoom UIScrollView
, deseo volver a dibujar el UIView
completo en el nuevo nivel de zoom.Redibujar UIScrollVer contenido después de cada zoom
En iOS 3.2 <, yo estaba haciendo esto cambiando el tamaño del UIView
dentro del UIScrollView
para que sea el nuevo tamaño, y luego poner la transformada de nuevo a la identidad, por lo que no sería tratar de cambiar su tamaño más. Sin embargo, con iOS> = 3.2, cambiar la identidad también cambia la propiedad zoomScale de UIScrollView
.
El resultado es que siempre que hago zoom (digamos 2x), ajusto el UIView
incrustado para que tenga el tamaño apropiado y lo vuelvo a dibujar. Sin embargo, ahora (desde que reinicié la transformación a Identidad), el UIScrollView
piensa que es una vez más en zoomScale 1, en lugar de zoomScale 2. Por lo tanto, si mi maxZoomScale está configurado en 2, se seguirá intentando ampliar, lo cual es incorrecto.
Pensé en usar el CATiledLayer
, pero no creo que esto sea suficiente para mí, ya que quiero volver a dibujar después de cada acercamiento, no solo a ciertos umbrales de acercamiento como lo intenta hacer.
¿Alguien sabe cómo hacer el rediseño correcto de UIView
con un zoom?
¡Muchas gracias por su solución! Esto resuelve [mi pregunta] (http://stackoverflow.com/questions/3970988/how-to-draw-on-a-non-transformed-context-while-zoomed-in-a-catiledlayer). ¿Podría dejar un enlace a su respuesta allí, para que pueda darle el crédito adecuado por responderla? – TinkerTank
Si este método se utiliza para acercar o alejar un CATiledLayer, la memoria caché de teselas debe borrarse antes de llamar a setNeedsDisplay. Una solución para borrar el CATiledLayerCache está disponible [aquí] (http: // stackoverflow.com/preguntas/1274680/claros-catiledlayers-cache-when-cambiantes imágenes secundarias) – TinkerTank
pueden explicar por favor la propiedad del contentSize y cómo se consigue el sistema y lo que realmente es. Gracias – BDGapps