2

UIScrollView にある UIImageView があります。次のコードを使用して、UIImageView の CALayer に画像を読み込みます。

UIImage *image = [UIImage imageNamed: fileToDisplay];    
NSLog(@"If I don't flip image imageScrollView.zoomScale: %f", imageScrollView.zoomScale);
[[imageView layer] setContents: (id)image.CGImage];
if (flipped)
{
    [[imageView layer] setTransform: CATransform3DMakeRotation(180.0 / 180.0 * M_PI, 0.0, 1.0, 0.0)];
    NSLog(@"If image flipped imageScrollView.zoomScale: %f", imageScrollView.zoomScale);
}

y軸を中心に画像を「反転」しています。予期しないイベントは、次の出力に示すように、imageView.layer の変換によって imageScrollView.zoomScale が変更されることです。

画像を反転しない場合 imageScrollView.zoomScale: 0.465455

画像を反転した場合 imageScrollView.zoomScale: 1.000000

私の質問は、これを起こさないようにするにはどうすればよいですか? この動作を無効にする方法がない場合、反転しない画像で実行される画像フレーミングを実現するにはどうすればよいですか。つまり、zoomScale を変換前の状態に設定するだけでは機能しません。UIScrollView で何かが変更されました (contentSize または contentOffset ではありません)。

助けてくれてありがとう。

4

1 に答える 1