0

ユーザーがボタンを押して写真を撮ったときの効果について話しているのですが、縮小してツールバーに移動しますか? これは一般的にどのように達成されますか?

4

2 に答える 2

0

これは、画像のスケーリング(変換の適用)と移動(位置のアニメーション化)の両方で作成できます。

このブログ投稿で、同様のアニメーション(iPhoneのSafariからのOpen in Backgroundアニメーション)について書きました。すべてのコードが必要なわけではありませんが、コードの一部は、実行しようとしているアニメーションに役立ちます。


あなたがすべき

  • 画像を適切なサイズにするために倍率を計算します
  • 画像をアニメーション化するパスを計算します。
  • 計算された倍率でスケールをアニメーション化する
  • パスに沿った位置アニメーションをアニメーション化する(CAKeyframeAnimationを使用)

一度に2つのアニメーションを実行しているので、CAAnimationGroupを使用することでメリットが得られます。

おそらく画像がある場所とは別のビュー階層の一部であるツールバーにアニメーション化しているので、次のような方法を使用する必要があるかもしれません。

- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view

- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view 

異なるビュー間の座標を変換します。

于 2012-10-08T08:34:14.600 に答える
0

したがって、縮小アニメーションは次の方法で実現されます

 [UIView beginAnimations:@"animationShrink" context:NULL];
    [UIView setAnimationDuration:kSlideInAnimationDuration];

    flipFlopContainer.transform = CGAffineTransformMakeScale(0.01, 0.01);
    [UIView setAnimationDelegate:self];
    [UIView    setAnimationDidStopSelector:@selector(shrinkAnimationFinished:)];
    [UIView commitAnimations];

このアニメーションの後、shrinkAnimationFinished メソッドでパスを定義し、そのパスに合わせてビューの位置を変更する必要があります。

そのアニメーションについては、次のスレッドを参照してください

Core Animation (CAKeyFrameAnimation) で UIView のサイズ変更と移動を行う

于 2012-10-08T08:30:17.333 に答える