Skip to content

UITabBarControllerのTabBarを非表示にする

2013年7月17日

タブバーを非表示にすると、下にスペースが出来ちゃってやな感じになる。
そのスペースを無くして表示するには?

以下のように、TabBarControllerのサブクラスに実装する


BOOL hiddenTabBar;

- (void) hideTabBar {
    
    for(UIView *view in self.view.subviews)
    {
        CGRect _rect = view.frame;
        if([view isKindOfClass:[UITabBar class]])
        {
            if (hiddenTabBar) {
                _rect.origin.y = ScreenHeight - self.tabBar.frame.size.height;
                [view setFrame:_rect];
            } else {
                _rect.origin.y = ScreenHeight;
                [view setFrame:_rect];
            }
        } else {
            if (hiddenTabBar) {
                _rect.size.height = ScreenHeight - self.tabBar.frame.size.height;
                [view setFrame:_rect];
            } else {
                _rect.size.height = ScreenHeight;
                [view setFrame:_rect];
            }
        }
    }
    hiddenTabBar = !hiddenTabBar;
}

これでスペースをとられることなく非表示に出来る。

スペースを消すと、並行移動とラッピングビューが残るので、この2つの機能だけ使いたいときは便利。
tabbarControllerを呼び出すときはappDelegateから呼び出すようにしないと動かないので注意が必要。

参考:http://www.developers-life.com/hide-uitabbarcontrolleruitabbar-with-animation.html

広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。