2012-03-02 10 views
11

pinterestや他の多くのアプリがやっているように、隠し/隠すナビゲーションバーを作成するにはどうすればよいですか?基本的な考え方は、UIScrollViewデリゲートを使用して、スクロールアップまたはスクロールして、それに基づいてナビゲーションバーを表示するかどうかを検出することです。したがって、ナビゲーションバーが隠れている場合、Nav Controllerの表示の高さを調整する必要がありますか?これはどのように作動しますか?どのようにpinterestスタイルの非表示/非表示のナビゲーション/タブバーを作成するには?

答えて

0

私はおそらくメインビューとしてスクロールバーを持つ自分自身のルートコントローラを作成し、ナビゲーションコントローラのビューをそれに入れようとします。あなたはnavbarビューの中でスクロールバーを使用することはできませんが、私はあなたがこのような場合にそれを必要としないと信じています。

このアプローチがうまくいかない場合は、おそらくナビゲーションコントローラーの外観を模倣した独自のコントローラーを作成するでしょう。

6

Pinterestの/ piictuのスタイル「UINavigationController/UITabBarControllerのものを非表示」を行いますgithubの上にあるサンプルプロジェクトを持っています。

すべてのアニメーションを同期させるために自分のナビゲーションコントローラをローリングしてしまい、このスクロールビューコードを使用して拡張または縮小するかどうかを判断しました。 iOS> = 5.0

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    MyCustomNavController* navController = (MyCustomNavController*)self.parentViewController; 
    if([scrollView.panGestureRecognizer translationInView:self.view].y < 0.0f) { 
     [navController setExpanded:YES animated:YES]; 
    } else if ([scrollView.panGestureRecognizer translationInView:self.view].y > 0.0f ) { 
     [navController setExpanded:NO animated:YES]; 
    } 

} 
関連する問題