2013-05-22 10 views
6

私のイメージが画面の左上から始まり、画面の中央に元のサイズと場所に展開されるUIViewアニメーションを試行しています。今まで私はこれを個別に行うことができましたが、これらのアニメーションを結合しようとすると、スケールアニメーションだけが実行されます。スケールアニメーションと翻訳アニメーションを結合する方法

私はこの作業を行う方法がありますか同時にスケールと翻訳?ここで

は、私がこれまで持っているものです。

CGAffineTransform setpointTrans = CGAffineTransformMakeTranslation(-200.0f, -200.0f); 
CGAffineTransform setpointScale = CGAffineTransformMakeScale(0.0f, 0.0f); 
_RSEImage.transform = CGAffineTransformConcat(setpointTrans, setpointScale); 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDuration:5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.0f, 1.0f); 
CGAffineTransform lefttorightTrans = CGAffineTransformMakeTranslation(0.0f,0.0f); 
_RSEImage.transform = CGAffineTransformConcat(scaleTrans, lefttorightTrans); 
[UIView commitAnimations]; 

[OK]を、私は私が変更するもので、ここで、それを考え出した:

_RSEImage.transform = CGAffineTransformMakeScale(0.0f, 0.0f); 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDuration:5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.0f, 1.0f); 
CGAffineTransform lefttorightTrans = CGAffineTransformMakeTranslation(200.0f,200.0f); 
_RSEImage.transform = CGAffineTransformConcat(scaleTrans, lefttorightTrans); 
[UIView commitAnimations]; 
+0

私はあなたのコードを試しました。これはあなたが達成したいと思うものを完全に行います:スケールアップして翻訳してください...このコードの前にあるRESImageの原点は何ですか? – nzs

+0

x 160 y 242、あなたが尋ねていることはそうだと思います。申し訳ありません、これは私の最初のiPhoneアプリです。画像サイズは161 x 71 –

+0

です。基本的にこのコードスニペットが機能しているため、問題が発生している場所からこのコードを読み取るのは難しいですが、これはアフィン変換を「マージ」する方法です。だから私はあなたのコードのいくつかの他の部分はどうにかして翻訳を防ぐか、または表示されないと思います...物事をコメントアウトすることによって徐々に機能を追加し、その時点までにすべてがうまく見えることを確認します。例えば。 0.3fスケールと-100f変換の最初の3行をこのスニペットで確認してください。img? paramsをテストするために翻訳を単独で追加し、スケールでマージします。ブロックが簡単なので、私の答えも使用できます。 – nzs

答えて

2

あなたはiOS4をから(また、アニメーションのブロックを、これを使用することができます):ここ

[UIView animateWithDuration: 5 
         delay: 0 
        options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction) 
       animations:^{_RSEImage.center = CGPointMake(300, 300) ; _RSEImage.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2.0, 2.0);} 
       completion:^(BOOL finished) { } 
]; 

関連する公式ドキュメント:link

ニースチュートリアル:link

希望します!

+0

は画像を2倍のサイズにスケーリングしただけで、画像を左上隅から中央に移動しませんでした。 –

+0

sthing weird happening ... ;-) _RSEImageのタイプは何ですか?ビューに追加するコードを共有できますか?または_RSEImageに関連する他のコード? – nzs

+0

私はそれを理解して私の質問を編集しました。私はこれらのブロックを学びます。ご協力ありがとうございました。 –

関連する問題