如何创建pinterest样式隐藏/取消隐藏导航/标签栏?

adi*_*dit 11 iphone objective-c uinavigationcontroller ipad ios

如何创建一个隐藏/取消隐藏的导航栏,如pinterest和许多其他应用程序正在做什么?我知道基本的想法是使用UIScrollView委托并检测我是否向上或向下滚动并显示基于该导航栏的导航栏.如果导航栏被隐藏,我还应该调整导航控制器视图高度吗?这是如何运作的?

Ton*_*ion 26

我有一个位于github上的示例项目,它完全符合pinterest/piictu风格'隐藏UINavigationController/UITabBarController的东西'

https://github.com/tonymillion/ExpandingView


Nic*_*ico 6

我试过https://github.com/tonymillion/ExpandingView并遇到了很多问题.

我最终滚动自己的导航控制器以同步所有动画并使用此滚动视图代码来确定我是否应该展开或收缩.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];
    }

}
Run Code Online (Sandbox Code Playgroud)