Как правильно заменить изображение в UIImageView в UIScrollView на iOS

У меня интересная проблема. У меня есть один UIScrollView, а внутри только один UIImageView с изображением. Мне это нужно для масштабирования и панорамирования. В порядке. При нажатии кнопки я хочу заменить изображение в UIImageView (которое находится в UIScrollView, как уже упоминалось) на следующее в строке.

До сих пор я делал вот так:

self.imageView = nil;
self.imageView = [[UIImageView alloc] initWithImage:nextImage];

Я всегда устанавливаю self.imageView равным нулю, потому что если я этого не сделаю, то следующее изображение будет масштабировано или увеличено как и предыдущий был.

Но я не думаю, что это хорошее решение для повышения эффективности памяти.

Есть ли другой способ установить новое изображение в UIImageView с опцией «сброса» для масштабирования, масштабирования и т. Д.?

ОБНОВЛЕНИЕ: Код, который все еще не работает:

[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]];

ОБНОВЛЕНИЕ 2 Только что понял, что делаю не так. Я не сбрасывал минимальный масштаб увеличения.

[self.scrollView setMinimumZoomScale:1.0];

Теперь это работает!

7
задан Borut Tomazin 14 February 2012 в 11:23
поделиться