0

私のアプリケーションには VOIP 通話があります。その中で、ユーザーがダイヤルパッドの通話ボタンをクリックしたときにiPhoneのデフォルトの電話アプリケーションが行うようなアニメーションと、通話終了ボタンで行われるアニメーションを実装したいと考えています。

私はこれについて多くのことを研究しましたが、まだ何も見つけていません。このトピックに関するヘルプをいただければ幸いです。

現在、以下のようなスケーリング アニメーションを実装しています。

- (void)animateFadingOut{

    self.view.transform = CGAffineTransformMakeScale(1.00, 1.00);
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelegate:self];

    [self performSelector:@selector(push) withObject:nil afterDelay:0.35];
    self.view.transform = CGAffineTransformMakeScale(0.00, 0.00);
    //set transformation
    [UIView commitAnimations];


}

- (void)push
{
    self.view.transform = CGAffineTransformMakeScale(1.00, 1.00);
    // push navigation controloller
    CallViewController *objCallViewController = [[CallViewController alloc] initWithNibName:@"CallViewController_iPhone" bundle:nil];
    [self setHidesBottomBarWhenPushed:YES];

    [self.navigationController pushViewController:objCallViewController animated:NO];
    [objCallViewController release];
    [self setHidesBottomBarWhenPushed:NO];
    [[AppDelegate shared] setTabHidden:TRUE];

}

しかし、デフォルトの電話アプリケーションが持っている正確なアニメーションが表示されません

4

2 に答える 2

0

アニメーションを作成しようとしていた場合、次のことを試してみてください。

CGRect movementFrame = self.view.frame;
//Make position and size changes as needed to frame
movementFrame.origin.x = 0;

[UIView animateWithDuration:0.5
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{

                     /*
                       Animation you want to commit go here
                       Apply movementFrame info to the frame
                       of the item we want to animate
                     */

                     //If you wanted a fade
                     self.view.alpha = !self.view.alpha //Simply says I want the reverse.

                     self.view.frame = movementFrame;

                     //Example of what you could do.

                     self.view.transform =CGAffineTransformMakeScale(1.00, 1.00);

                 } completion:^(BOOL finished) {
                     //Things that could happen once the animation is finished
                     [self push];
                 }];

これはあなたのケースではテストされていません。したがって、お役に立てるかどうかもわかりませんが、お役に立てれば幸いです。頑張って。

*編集*

そこで、iPhone でアニメーションを確認したところ、一連のアニメーションが同時に起こっているように見えました。

  • UIActionSheet がアニメーション化されていると思われるものがあります。
  • y 軸を上にスライドするトップ セクション オーバーレイ。
  • 次に、まだマスターしていませんが、x 軸を反対方向にアニメートする背面ビューの分割があり、分割が発生します。
  • 最後に、効果のフレームを取るために新しいビューを拡大します。

    100% とは言えませんが、これを再現しようとするなら、おそらくここから始めます。

  • 于 2013-02-13T09:08:25.087 に答える
    0

    こんにちは。アニメーションをすぐに思いついたので、微調整を使用できるようにかなり近づけました。また topView, bottomView, and backView. 、ロードするビューも考慮に入れました。viewToLoadIn

    `-(void)アニメーション{

    CGRect topMovementFrame = self.topView.frame; //Set dummy frame to modify 
    CGRect bottomViewFrame = self.bottomview.frame;
    topMovementFrame.origin.y = 0 - self.topView.frame.size.height; //modify frame's yAxis so that the frame sits above the screen.
    bottomViewFrame.origin.y = self.view.frame.size.height; //modify frame's yAxis to the it will sit at the bottom of the screen.
    
    [self.viewToLoadIn setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    
    
    [UIView animateWithDuration:0.5
                          delay:0.0
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^{
                         //Animation
                         self.topView.frame = topMovementFrame; //Commit animations
                         self.bottomview.frame = bottomViewFrame;
                         self.backView.alpha = !self.backView.alpha;
                         self.backView.transform = CGAffineTransformMakeScale(100, 100);
                         self.viewToLoadIn.transform = CGAffineTransformMakeScale(2.0, 3.0);
    
    
                          *MAGIC*
                     } completion:^(BOOL finished) {
                         //Completion
                         //Clean up your views that you are done with here.
                     }];
    

    }`

    それで、彼らがボタンを押すと、このアニメーションが起こるように設定しました。

    また、最初は、セットアップにUIActionStyleSheet. まだそうかもしれませんが、これは非常に便利な組み込み機能です。しかし、画面を操作できるという事実から、カスタム ビューを考えるようになりました。私の意見では、その方が簡単でしょう。

    少しでも参考になれば幸いです。気をつけて^^

    于 2013-02-16T02:01:38.310 に答える