Tengo un problema interesante. Tengo un UIScrollView y dentro solo un UIImageView con imagen. Necesito esto para hacer zoom y paneo. Ok. En un botón, toque Quiero reemplazar la imagen dentro de UIImageView (que está dentro de UIScrollView, como se mencionó) con la siguiente en la línea.Cómo reemplazar correctamente la imagen en UIImageView en UIScrollView en iOS
Hasta ahora lo he hecho así:
self.imageView = nil;
self.imageView = [[UIImageView alloc] initWithImage:nextImage];
La razón por la que siempre se establece self.imageView
a cero es que si yo no hago eso que la siguiente imagen se escala o zoom al igual que el anterior uno fue.
Pero no creo que sea una buena solución para la eficiencia de la memoria.
¿Hay alguna otra manera de establecer una nueva imagen en UIImageView con la opción "reiniciar" para ampliar, escalar, etc.?
ACTUALIZACIÓN: El código que todavía no funciona:
[self.scrollView setZoomScale:1.0];
[self.imageView setImage:photoImage];
[self.imageView setFrame:rect];
[self.scrollView setContentSize:[self.imageView frame].size];
CGFloat minZoomScale = [self.scrollView frame].size.width/[self.imageView frame].size.width;
if (minZoomScale < [self.scrollView frame].size.height/[self.imageView frame].size.height) {
minZoomScale = [self.scrollView frame].size.height/[self.imageView frame].size.height;
}
[self.scrollView setMinimumZoomScale:minZoomScale];
[self.scrollView setZoomScale:[self.scrollView minimumZoomScale]];
ACTUALIZACIÓN 2 Sólo di cuenta de lo que estaba haciendo mal. No reinicié la escala de zoom mínima.
[self.scrollView setMinimumZoomScale:1.0];
¡Ahora funciona!
Este es la solución correcta. ¡Gracias hombre! –
En realidad, esto no está funcionando. UIImageView obtiene el tamaño de la imagen anterior que es incorrecto. ¿Cómo puedo también reiniciar UIImageView? –
¿Intentó configurar la imagen después de configurar 'zoomScale' en 1? – Ilanchezhian