如何在iOS上的UIScrollView中正确替换UIImageView中的图像

Bor*_*zin 7 replace uiscrollview uiimageview uiimage ios

我有一个有趣的问题.我有一个UIScrollView,里面只有一个带图像的UIImageView.我需要这个用于缩放和平移.好.在一个按钮触摸我想要替换UIImageView中的图像(在UIScrollView中,如上所述)与下一个在线.

到目前为止,我这样做了:

self.imageView = nil;
self.imageView = [[UIImageView alloc] initWithImage:nextImage];
Run Code Online (Sandbox Code Playgroud)

我总是设置self.imageView为nil 的原因是,如果我不这样做,那么下一个图像将像前一个图像一样缩放或缩放.

但我认为这不是内存效率的精细解决方案.

是否还有其他方法可以在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]];
Run Code Online (Sandbox Code Playgroud)

更新2 只是弄清楚我做错了什么.我没有重置最小缩放比例.

[self.scrollView setMinimumZoomScale:1.0];
Run Code Online (Sandbox Code Playgroud)

现在它有效!

Ila*_*ian 7

有一个叫物业zoomScaleUIScrollView

将1.0设置为scrollview的zoomScale.无需每次都释放旧的UIImageView并分配新的UIImageView.您可以直接将图像设置为imageview,并将zoomScaleUIScrollView的设置为1.0.