photo1これはマスター間近なアプリの画面(いいのか)。

4ページある画面を、画面下部にある4つのタブをタップすることで切り替えるようになってます。

これ、UITabBarControllerを使って実現してるんですが…切り替えが一瞬で、なんか面白みに欠けるんだよね。

せっかくのiPhoneなのにー。
なんかこう…!

で、画面切り替え時にいい感じでトランジションアニメーションできないかと色々試行錯誤した結果。

できました!

ちょっとトリッキーですが、UITabBarControllerDelegate のメソッドで処理します。

id tabSelectedView;

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    if(tabSelectedView != viewController)
    {
        NSArray *array = [[tabBarController view] subviews];
        UIView *view = [array objectAtIndex:0];

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.75];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:view cache:YES];
        [UIView commitAnimations];

        tabSelectedView = viewController;
    }
}

photoこれでオッケー!タブをタップする度ナイスなトランジション効果で画面が切り替わります。上のコードのバヤイ、メモ用紙を一枚めくったみたいな効果で画面が切り替わるよ。

これヤバイ…ページめくってるだけで面白いわ…。

なんでこれでよいかは各々で考えてみて下さいね。宿題!(そんなにむつかしくないよね)

iPhoneアプリの開発、こういう画面効果の実装が楽でホント助かる。