0

私は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 で正しく動作しないのはなぜですか? ズームする前に大きな画像を設定する必要がありますが、後で設定する必要はありません。

4

0 に答える 0