2012-03-02 532 views
11

如何創建隱藏/取消隱藏導航欄,如pinterest和其他許多應用程序在做什麼?我知道基本的想法是使用UIScrollView委託,並檢測我是否向上或向下滾動,並基於此顯示導航欄。所以如果導航欄被隱藏,我也應該調整navcontroller視圖的高度?這個怎麼用?如何創建pinterest風格隱藏/取消隱藏導航/標籤欄?

回答

26

我有位於GitHub上的樣本項目,正是這麼做的Pinterest的/ piictu風格「隱藏的UINavigationController /的UITabBarController東西」

https://github.com/tonymillion/ExpandingView

+2

很好的例子,謝謝你! – codingrhythm 2012-09-26 07:57:07

+1

奇妙,它的作品像一個魅力 – 2014-01-02 15:59:29

+0

我發現很容易使用庫:https://github.com/inamiy/YIFullScreenScroll – ilya 2014-04-21 12:31:23

0

我可能會嘗試創建我自己的根控制器與滾動條作爲主視圖,並將導航控制器的視圖。你不能在導航欄視圖中使用滾動條,但我相信你在這種情況下不需要它。

如果這種方法不起作用,我可能會創建自己的模擬導航控制器外觀的控制器。

6

我試過https://github.com/tonymillion/ExpandingView,撞上了一堆的問題。

我結束了滾動我自己的導航控制器,以獲得所有動畫同步並使用此scrollview代碼來確定我是否應該擴大或縮小。 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]; 
    } 

}