如何创buildpinterest风格隐藏/取消隐藏导航/标签栏?

如何创build隐藏/取消隐藏的导航栏,如pinterest和许多其他应用程序正在做什么? 我知道基本的想法是使用UIScrollView委托,并检测我是否向上或向下滚动,并显示导航栏的基础上。 那么如果导航栏被隐藏,我也应该调整navcontroller视图的高度? 这个怎么用?

我有一个示例项目位于github上,确实pinterest / piictu风格“隐藏UINavigationController / UITabBarController的东西”

https://github.com/tonymillion/ExpandingView

我试过https://github.com/tonymillion/ExpandingView并遇到一堆问题。

我结束了滚动我自己的导航控制器,以获得所有的animation同步,并使用这个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]; } } 

我可能会尝试创build我自己的根控制器与滚动条作为主视图,并把导航控制器的视图。 你不能在导航栏视图中使用滚动条,但是我相信在这种情况下你不需要它。

如果这种方法不起作用,我可能会创build自己的模拟导航控制器外观的控制器。