スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Objective-c アニメーション

Objective-c関連の備忘録。
基本的にSingle Viewのデフォルトプロジェクトのファイル(ViewController.h、ViewController.mとか)を例にします。



アニメーションはとても簡単に実装できる。
簡単にまとめると下記の通り。
①開始前の状態を実装
 |この間がアニメーションになる
②終了時の状態を実装

たとえばこんな感じ。

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
float x_from =0;
float y_from =0;
float w_from =50;
float h_from =50;

float x_to =100;
float y_to =200;
float w_to =50;
float h_to =50;

//変化前の実装
UIImageView *ugoku_mono= [[UIImageView alloc] init];
ugoku_mono.backgroundColor = [UIColor blackColor];
ugoku_mono.frame = CGRectMake(x_from, y_from, w_from, h_from);
[self.view addSubview:ugoku_mono];

//アニメーション
[UIView animateWithDuration:10 //何秒のアニメーションか
delay:0 //アニメーション開始前に何秒待つか
options:UIViewAnimationOptionCurveEaseInOut //アニメーションのオプション(後述)
animations:^{//この中に終了時の状態を実装
ugoku_mono.frame = CGRectMake(x_to,y_to,w_to,h_to);
}
completion:^(BOOL finished) {
//アニメーション終了後の処理
}];
}
アニメーション終了後の処理の部分に別のアニメーションを記載して入れ子にすると連続したアニメーションができる。

・アニメーションのオプション
IViewAnimationOptionRepeat ・・・ アニメーションを永続的に繰り返す
UIViewAnimationOptionCurveEaseInOut ・・・ 開始後加速、減速して終了
UIViewAnimationOptionCurveEaseIn ・・・ 開始後加速
UIViewAnimationOptionCurveEaseOut ・・・ 減速して終了
UIViewAnimationOptionCurveLinear ・・・ ずっと等速


注意しなくてはいけないのが、アニメーションは非同期で行われるということ。
並行して処理を行うとアニメーションが終わる前に裏で別の処理が走ってごちゃごちゃになる事があるので注意が必要。



[PR]


コメント

コメントの投稿

非公開コメント

PR

PR

プロフィール

何でも書くman

Author:何でも書くman
思ったことや備忘録など、とりあえずなんでも書きます。IT系のことや趣味、生活に関わることなども。

ページの先頭へ戻る
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。