Volver a dibujar text en UIImageView ampliada después de hacer zoom

Tengo una aplicación para iOS que se resume a lo siguiente:

  • Un controller de vista que implementa todos los methods UIScrollViewDelegate .
  • Un UIImageView personalizado, que es la vista que devuelve viewForZoomingInScrollView en el primer controller de vista.

En el método drawRect del UIImageView I personalizado, superponemos un poco de text en varias posiciones de la image, el text puede estar en varios tamaños y angularjs, restringido por un rectángulo definido por puntos en la image. Entonces, el sistema de coorderadas es todo relativo a la image asociada con UIImageView .

A veces, el text tiene que traducirse en áreas que son demasiado pequeñas para permitir que el text sea legible en el nivel de zoom pnetworkingeterminado.

Sin embargo, cuando UIImageView , esto no hace que el text sea más legible, ya que el text se representó en el UIImageView original en el tamaño de fuente apropiado para los límites que se le dieron.

Lo que me gustaría es una forma de volver a dibujar este text, en la location correcta aún, a un tamaño de fuente proporcionalmente mayor cuando se amplía. ¿Esto es posible y cómo lo haría?

He estado trabajando en un plano zoomable y he tratado de una manera bastante simple.

Puse mi text en tags y puse esas tags encima de ImageView. Mientras enfoca la escala de las tags con UIImageView y, por lo tanto, también el text dentro de la escala.

Cuando se hace un zoom demasiado, sin embargo, el text se vuelve vago y borroso, por lo que es posible que desee actualizar esas tags de text en:

 - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale 

Para mí, esto fue suficiente, espero que esto también sea para ti.

En lugar de tratar de solucionar esto, diría que su layout es un poco incorrecto. Reintegraría esto para que esté renderizando todo el contenido que está mostrando con el zoom más alto que desee y, a continuación, permita que la vista de desplazamiento amplíe o disminuya el contenido terminado especificando los parameters de zoom. De lo contrario, te volverás loco tratando de arreglar el text. Simplemente dibuje la image / documento completo tan grande como desee, luego agregue THOSE contents a la vista de desplazamiento, a un zoom más bajo, permitiendo al usuario acercar / alejar a medida que lo desee. Entonces has terminado.

Puede escribir su text de superposition en UILabels, adjunto a la vista UIViewController. A continuación, debe crear su propia class personalizada desde UIScrollView y anular

 - (void)setContentOffset:(CGPoint)anOffset 

aquí, al usar anOffset y self.zoomScale puede colocar sus tags en los lugares que desee, con el tamaño de fuente apropiado y todo. Por lo tanto, cambiarán sus posiciones cada vez que se desplace o se acerque la vista de desplazamiento.