私はUIScrollViewを持っています。画像をズームするときは、最初に小さな画像を表示し、次に大きな画像を表示する必要があります。このコードを使用すると、すべて問題ありません。
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollViewCalled
{
ImageScrollView *scroll = scrollViewCalled
UIImageView *imageView = (UIImageView *)[scroll viewWithTag:kImageViewTag];
return imageView;
}
ImageView のサイズ = 画像のサイズ (つまり、画像が小さい場合は小さい画像のサイズ、画像が大きい場合は - 大きい画像のサイズ) scrollView の ContentSize = imageView のサイズ。
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollViewCalled withView:(UIView *)view atScale:(float)scale
{
ImageScrollView *scroll = scrollViewCalled
UIImageView *imageView = (UIImageView *)[scroll viewWithTag:kImageViewTag];
if ([self isBigImage:imageView])
{
return;
}
[self loadBigImage];
}
しかし、このコードを使用すると(ズームしようとすると大きな画像が表示されますが、最大ズームスケールが表示され、スクロールして画像の残りの部分を見ることができません。しかし、代わりにもう一度ズームすると画像をスクロールすると、適切に動作し始め、最終的に画像をスクロールできます.しかし、そのためには2倍ズームする必要があります):
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollViewCalled withView:(UIView *)view
{
ImageScrollView *scroll = scrollViewCalled
UIImageView *imageView = (UIImageView *)[scroll viewWithTag:kImageViewTag];
if ([self isBigImage:imageView])
{
return;
}
[self loadBigImage];
}
scrollViewWillBeginZooming で正しく動作しないのはなぜですか? ズームする前に大きな画像を設定する必要がありますが、後で設定する必要はありません。