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

我司产品🐶突然喜欢上了知乎简书的的那种上滑加载更多时隐藏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;

更多iOS、Swift开发精彩内容请移步http://lvesli.com或者关注我们的微信公众账号

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

icon