1

UIImageView の scaleY から確認しましたが、機能しません (以下のコードを参照)。

CGAffineTransform t = [myImageView transform]; // Keep matrix value of UIImageView
float scaleY1 = sqrt(t.b * t.b + t.d * t.d);   // 1.0000
CGAffineTransform t2 = CGAffineTransformScale(t, 1, -1.0); // flip UIImageView vertically
float scaleY2 = sqrt(t2.b * t2.b + t2.d * t2.d); // 1.0000
[myImageView setTransform:t2];
NSLog(@"1: %f, 2: %f", scaleY1, scaleY2); // 1: 1.0000, 2: 1.0000

上記から、UIImageView を反転する前後で、同じ「scaleY 値」が得られていることがわかります。

チェックすべき値は何ですか?(UIImageViewが垂直方向に反転したことを検出するため)

4

3 に答える 3

0

imageview の transform プロパティをチェックするのはどうですか? ビューが変換されているかどうかが表示されます。変換を適用した後、myImageView の値をコンソールに出力すると、次のようになります。

(lldb) po myImageView

UIImageView: 0x8f59f30; フレーム = (0 0; 0 0); 変換 = [1, 0, -0, -1, 0, 0]; userInteractionEnabled = NO;

于 2013-11-08T09:22:56.107 に答える
0

これを試すことができます

[UIView transitionWithView: flipTile
                  duration: 0.5
                   options: UIViewAnimationOptionTransitionFlipFromLeft
                animations:^{
                    flipTile.image = newTileImage;
                }
                completion:^(BOOL finished) {
                    /*
                        code after completion
                    */
                }
 ];
于 2013-11-08T09:23:59.157 に答える
0

jay gajjar の答えは結構です。

ただし、アニメーション化したくない場合は、

[UIView transitionWithView: flipTile
                  duration: 0.0
                   options: UIViewAnimationOptionTransitionFlipFromLeft
                animations:^{
                    flipTile.image = newTileImage;
                }
                completion:^(BOOL finished) {
                    /*
                        code after completion
                    */
                }
 ];
于 2013-11-08T09:35:07.063 に答える