UIViewAnimation(3) | 初心者がiPhoneアプリを作るブログ

初心者がiPhoneアプリを作るブログ

初心者がiPhoneアプリを作るブログです.
入門レベルですので開発初心者にも,できるだけ分かるように丁寧に説明していきます(多分).

どうやらblockを使って書いたほうがすっきりる予感(今更)
はい,ということでコードだけ載せます,備忘録だし(無責任)

/**
 * UIViewAnimationOptions
 * これは書かなくていいので,コメントアウトにしてますよー
 */
/*enum {
 UIViewAnimationOptionLayoutSubviews            = 1 <<  0,
 UIViewAnimationOptionAllowUserInteraction      = 1 <<  1,
 UIViewAnimationOptionBeginFromCurrentState     = 1 <<  2,
 UIViewAnimationOptionRepeat                    = 1 <<  3,
 UIViewAnimationOptionAutoreverse               = 1 <<  4,
 UIViewAnimationOptionOverrideInheritedDuration = 1 <<  5,
 UIViewAnimationOptionOverrideInheritedCurve    = 1 <<  6,
 UIViewAnimationOptionAllowAnimatedContent      = 1 <<  7,
 UIViewAnimationOptionShowHideTransitionViews   = 1 <<  8,
 
 UIViewAnimationOptionCurveEaseInOut            = 0 << 16,
 UIViewAnimationOptionCurveEaseIn               = 1 << 16,
 UIViewAnimationOptionCurveEaseOut              = 2 << 16,
 UIViewAnimationOptionCurveLinear               = 3 << 16,
 
 UIViewAnimationOptionTransitionNone            = 0 << 20,
 UIViewAnimationOptionTransitionFlipFromLeft    = 1 << 20,
 UIViewAnimationOptionTransitionFlipFromRight   = 2 << 20,
 UIViewAnimationOptionTransitionCurlUp          = 3 << 20,
 UIViewAnimationOptionTransitionCurlDown        = 4 << 20,
 UIViewAnimationOptionTransitionCrossDissolve   = 5 << 20,
 UIViewAnimationOptionTransitionFlipFromTop     = 6 << 20,
 UIViewAnimationOptionTransitionFlipFromBottom  = 7 << 20,
 };*/
UIViewAnimationOptions options = 0;
options = options | UIViewAnimationOptionCurveLinear;
/**
 * 普通にViewを動かすアニメーションの場合はこの関数を使う
 */
[UIView animateWithDuration:1.0         // アニメーション継続時間 NSTimeInterval型(つまりはdouble型)
                      delay:0.2         // アニメーション開始までの待ち時間 NSTimeInterval
                    options:options     // どんなアニメーションにするか 上に挙げたオプションのビット演算を指定
                 animations:^{
                     // ここにアニメーションを書く
                     [self.view setFrame:CGRectMake(self.view.bounds.size.width, self.view.frame.origin.y
self.view.bounds.size.width, self.view.frame.size.height)];
                 }
                 completion:^(BOOL finished) {
                     // ここにアニメーションが完了した後の処理を書く
                     NSLog(@"complete");
                 }];
/**
 * 一方,遷移アニメーションなどは,この関数を使いましょう
 */
options = 0 | UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionCurveEaseOut;
[UIView transitionFromView:self.view            // どのviewからアニメーションを始めるのかを指定
                    toView:self.animationView   // どのviewで終わるのかを指定

                  duration:1.0                  // 継続時間
                   options:options              // UIViewAnimationOptionのビット演算
                completion:^(BOOL finished) {
                    // 完了後の処理を書く
                    NSLog(@"complete");
                }];


...なんかコメントのせいで見にくい!!
XCodeにコピペしたら見やすくなるかもね.
という,全力で無責任でした笑

HOMEに戻る