読者です 読者をやめる 読者になる 読者になる

iOSコピペコーディング

できることは知ってるけど、コードってどうやって書くんだっけ?をコピペで解決

UIViewの簡単アニメーション

とりあえずUIViewをアニメーションしたい時はこれ。
下手に使うと他のアニメーションも巻き込まれるので注意。
UIViewのクラスメソッドを利用する。

 

 

//アニメーションに入る前にスタート地点にUIViewを配置しておく

    [viewTarget setFrame:CGRectMake(0.0f, 0.0f, 100.0f, 100.0f)];  //位置とサイズ

    CGFloat viewAngle = 0.0f; //回転角度

    viewTarget.transform = CGAffineTransformMakeRotation

                       (viewAngle*(M_PI/180.0f));

    

    ▼移動して、移動終了時の処理もしたい時

    [UIViewanimateWithDuration:1.0f//アニメーションにかける時間

                     animations:^{

                         //アニメの終了点の指定

                         [viewTarget setFrame:CGRectMake

                   (100.0f, 100.0f, 100.0f, 100.0f)];

                         CGFloat viewAngle = 170.0f//回転角度

                         viewTarget.transform =       

                           CGAffineTransformMakeRotation

                       (viewAngle*(M_PI/180.0f));

                     }

                     completion:^(BOOL finished){

                         //アニメーションが終了したときの処理

                     }];

    

//他にこんなクラスメソッドも用意されているので、使いたいオプションに応じて利用する

    ▼移動するだけ

    [UIView animateWithDuration:(NSTimeInterval)

                     animations:^(void)animations];

     

    ▼移動する前の待機時間を設定、動きの加速減速設定、終了後の設定もしたい時

    [UIView animateWithDuration:(NSTimeInterval)

                          delay:(NSTimeInterval)

                        options:(UIViewAnimationOptions)

                     animations:^(void)animations

                     completion:^(BOOL finished)completion];

    

    ▼上記に加えてポヨンポヨンしたい時

    [UIView animateWithDuration:(NSTimeInterval)

                          delay:(NSTimeInterval)

         usingSpringWithDamping:(CGFloat)

          initialSpringVelocity:(CGFloat)

                        options:(UIViewAnimationOptions)

                     animations:^(void)animations

                     completion:^(BOOL finished)completion];

    

    

//各オプションの意味と設定値

    Duration: アニメーションにかける時間(

    animations:  アニメ終了時の座標や、回転などを設定(UIViewの設定値)

    delay: アニメション開始までの待機時間

    options: UIViewAnimationCurveで始まるアニメの加速減速の設定

                      (UIViewAnimationCurve定数

                    UIViewAnimationCurveEaseIn      徐々に加速する

                    UIViewAnimationCurveEaseInOut   最初は加速、終了時に減速

                    UIViewAnimationCurveEaseOut     徐々に減速する

                    UIViewAnimationCurveLinear      一定速度でアニメーション

    usingSpringWithDamping: 移動終端でぽよんぽよんする。(0.0f1.0f)

                 0:ぽよんぽよん最大 1:ぽよんぽよん最小

 

    initialSpringVelocity: バネの初速。(0.0f1.0f)

                                                   良くわからん時は0にしとけ。

                 1にすると1秒かけて最初の移動するよ。

 

 

参考ページ

Xcode - 【iOS7】ばねっぽいアニメーションを実現するUIViewの新メソッド - Qiita