У меня интересная проблема. У меня есть один UIScrollView и внутри только один UIImageView с изображением. Мне это нужно для масштабирования и панорамирования.
Хорошо. При нажатии кнопки я хочу заменить изображение в UIImageView (которое находится в UIScrollView, как упомянуто) на следующее в строке.
Пока я сделал это так:
self.imageView = nil;
self.imageView = [[UIImageView alloc] initWithImage:nextImage];
Причина, по которой я всегда устанавливаю self.imageView
в ноль, заключается в том, что если я не сделаю этого, то следующее изображение будет масштабировано или увеличено, как и предыдущее.
Но я не думаю, что это хорошее решение для эффективности памяти.
Есть ли другой способ установить новое изображение в UIImageView с опцией «reset» для масштабирования, масштабирования и т. Д.? *
UPDATE:
Код, который все еще не работает:
[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];
Теперь это работает!