興味深い問題があります。私は1つのUIScrollViewを持っていて、イメージを持つUIImageViewは1つしかありません。私はズームとパンのためにこれが必要です。 ボタンのタッチで、UIImageView内の画像(UIScrollView内にある、言及したようなもの)を次の1行に置き換えます。iOSのUIScrollViewのUIImageViewでイメージを正しく置き換える方法
は、これまでのところ私はそのようにこれをやった:
self.imageView = nil;
self.imageView = [[UIImageView alloc] initWithImage:nextImage];
私は常にnilにself.imageView
を設定した理由は、私は次の画像よりも、それをしない場合は、拡大縮小や、以前のようにズームされていることです1つはあった。
しかし、私はそれがメモリ効率のための良い解決策だとは思わない。
UIImageViewでズーム、スケールなどの「リセット」オプションを使用して新しい画像を設定する方法はありますか?
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]];
UPDATE 2 ちょうど私が間違って何をやっていた考え出しました。私は最小ズームスケールをリセットしませんでした。
[self.scrollView setMinimumZoomScale:1.0];
これで機能します。
これは適切なソリューションであるImageViewのイメージを変更する前に0。ありがとう! –
これは実際には機能しません。 UIImageViewは前の画像からサイズを取得していますが間違っています。どうすればUIImageViewをリセットすることもできますか? –
'zoomScale'を1に設定してイメージを設定しようとしましたか? – Ilanchezhian