iOS 实现ScrollView 上滑隐藏Navigationbar 下滑显示

omor7359 8年前

我司产品汪突然喜欢上了 知乎 和 简书 的的那种上滑加载更多时隐藏 NavigationBar ,下拉时显示的那种效果。那些阅读类APP需要 沉浸式体验 隐藏导航栏无可厚非,我就纳闷一个P2P类软件你隐藏个毛线!废话少说,技术很好实现几行代码的事。

在包含 TableView 或者 ScrollView 的.m文件中加入以下代码:

在页面即将消失时显示NavigationBar,让下一个页面显示时 NavigationBar 显示状态:

//滑动隐藏导航栏 LiXingLe  -(void)viewWillDisappear:(BOOL)animated{      [super viewWillDisappear:animated];        self.navigationController.navigationBarHidden = NO;    }

实现 ScrollView 的代理:

#pragma mark 滑动隐藏导航栏  //滑动隐藏导航栏 LiXingLe    -(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{        if(velocity.y>0)        {            [self.navigationController setNavigationBarHidden:YES animated:YES];        }        else        {            [self.navigationController setNavigationBarHidden:NO animated:YES];        }    }

现在运行一下如果上滑的时候顶部没有变黑就OK了,如果NavigationBar 隐藏后顶部变黑,加上下面的代码, 在 viewDidLoad 中添加:

//滑动隐藏导航栏 LiXingLe    if ([self respondsToSelector:@selector(edgesForExtendedLayout)])          self.edgesForExtendedLayout = UIRectEdgeNone;

微信公众账号: lecoding 同步更新,你也可以扫描下方二维码关注我们。

来自: http://www.lvesli.com/?p=405