Pregunta

Tengo un UIImageView sencillo con una imagen que es más grande que la pantalla (600x1400). La imagen comienza con Ajustar a Aspect, por lo que los límites del informe 320x750 UIImgageView, todavía más grande que la pantalla, pero está bien. Sé de un punto (300, 150) con respecto a las dimensiones originales de la imagen (600x1400) que quiero escala y la posición a. Si I fijó una animación básica para manejar la posición y la escala (zoom, transformar) a través de la animación principal, la escala que pase, pero nunca terminan en el punto que quiero. En cambio, parece que tengo que calcular el punto sobre la base de la escala que será a la vez transformadas.

¿Hay algo obvio que me falta? He intentado usar convertPoint:. ToView, pero siempre vuelve al mismo punto que acabo lo di

¿Fue útil?

Solución

Sí, cuando se está configurando el origen de una vista, se está configurando en el espacio de coordenadas de su supervista. El supervista no sabe nada de la escala de la vista secundaria, por lo que si tiene que mover a una coordenada relativa al tamaño reducido de la imagen, se tendrá que ajustar la escala de coordenadas para que coincida. La matemática de hacer esto es trivial, pero se puede utilizar la función CGPointApplyAffineTransform () para tomar una CGAffineTransform que pueda haber utilizado para ajustar la escala del UIImageView a través de su propiedad de transformar y aplicarlo a una coordenada. (Además, recuerda que la coordenada 0,0 es la esquina superior izquierda en el iPhone.) No estoy seguro de si el establecimiento de la UIImageView a escala para ajustar a la escala hará a través de su propiedad de transformar o no, pero se puede construir fácilmente una transformación afín para que coincida con la escala actual de su vista.

Sin embargo, me gustaría sugerir que remuestrear la imagen a una resolución menor para ahorrar memoria y mejorar el rendimiento. 600x1400 es una imagen bastante grande como para ser lanzando alrededor en el iPhone. Este post tiene algunos consejos sobre cómo escalar UIImages. Si se aplica un factor de escala conocida por su imagen, sólo tiene que aplicar ese factor de escala para los componentes X e Y de su coordenada deseada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top