ios - 在滚动条上隐藏 UINavigationBar

标签 ios objective-c iphone

试图做到这一点,以便当用户滚动我的应用程序时,导航栏会消失,但当他们向上滚动时,它会重新出现。

我有以下代码:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
    self.latestOffset = scrollView.contentOffset.y;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

   if(self.latestOffset > scrollView.contentOffset.y) {
       [self.navigationController setNavigationBarHidden:NO animated:YES];
   }

   if (self.latestOffset < scrollView.contentOffset.y) {
       [self.navigationController setNavigationBarHidden:YES animated:YES];
   }
}

遇到一个问题,导航栏有时会覆盖我的 ScrollView ,还有一个问题,如果你没有向下滚动足够远,事情似乎就会出错。

最佳答案

iOS 8 与导航栏有一些新的交互,包括“hidesBarsOnSwipe”。

您可以设置该属性,操作系统会自动为您管理它,

navigationBar.hidesBarsOnSwipe = YES;

更多, https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/#//apple_ref/occ/instp/UINavigationController/hidesBarsOnSwipe

关于ios - 在滚动条上隐藏 UINavigationBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31730427/

相关文章:

ios - 高度约束动画 'jumping'

objective-c - 设置 frame.origin 与 CGAffineTransformMakeTranslation 之间的性能差异

iphone - CATitledLayer 出现间歇性 EXC_BAD_ACCESS 异常

ios - CGRect 裁剪图像显示错误值

iphone - iPad上的“可执行文件已使用无效的权利签名”,在iPhone上运行良好

iphone - UIWebViewDeletate shouldStartLoadWithRequest : gets called multiple times with redirection requests

ios - MonoTouch - 相当于 iOS UI 中的对接和锚定

iphone - 区分applicationDidEnterBackground和applicationWillTerminate

ios - 从 IOS 中的 Storyboard访问 View 时出现错误的帧值

ios - 命名空间 SIGNAL,代码 0x5,带有 EXC_BREAKPOINT (SIGTRAP)