Core Animationで遊んでみる (2)

区分
objective-c
報告者

英文のタイプは日本語のタイプと違うものなので、頭の変なところを使って意外と難しいということを最近知ったmasudaです。

今回も前回に引き続き、Core Animationで少し遊んでみたいと思います。
これも簡単にできるフェード処理です。

前回と同様、QuartzCore.frameworkをincludeし、

#import <QuartzCore/QuartzCore.h>

とimportすることが必要です。

さて実際にフェード処理を記述してみましょう。
たとえば、hogeViewというViewをフェードアウトしてみます。

CATransition    *transition;
transition = [CATransition animation];

// トランジション時間の設定(これだと1秒)。
[transition setDuration:1.0f];

// トランジションの種類の設定、今回はフェード。
[transition setType:kCATransitionFade];

// トランジション中に起こす処理を記述。
[hogeView setHidden:YES];

// トランジションを実行。
[[[self view] layer] addAnimation:transition forKey:@"layerAnimation"];

フェードインの時はsetHiddenをNoですね。

この方法を用いて、もう一つサンプルを書いてみます。
UINavigationItemのright/leftButtonItemを設定する際にはanimated:YESとすることでフェードイン/アウトしてくれますが、TitleViewはそのような項目はないのでこの方法を使えないかと思いやってみたらできました。

TitleViewにはUISegmentedControlを設定することにします。

CATransition    *transition;
transition = [CATransition animation];

[transition setDuration:1.0f];
[transition setType:kCATransitionFade];
[[self navigationItem] setTitleView:segmentedControl];
[[[[self navigationController] navigationBar] layer] addAnimation:transition forKey:@"layerAnimation"];

トップページに戻る

技師部隊からの
お知らせ

【求人】エンジニア募集しています。

本頁の来客数
八十七万千百七十六名以上(計測停止中)

メンバー一覧

アクトインディ技師部隊員名簿

アクトインディ技師部元隊員

アクトインディへ

カテゴリー

アクトインディ

aaaa