美文网首页
导航栏的隐藏处理

导航栏的隐藏处理

作者: lifeLL | 来源:发表于2018-06-05 15:47 被阅读0次

最近在做项目,一个课程列表,进入的时候导航栏隐藏,展开section后,滑动tableview导航栏渐变显示出来,看似没什么,只是点击cell进入新页面再返回就出现一些问题,比如。。。
1、进到有导航栏的页面
2、进入没有导航栏的页面
关键问题在于contentOffset
解决方案:

//UIScrollView 代理
-(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
   __weak typeof(self) weakSelf = self;
    [UIView animateWithDuration:0.5 animations:^{
        scrollView.contentInset = UIEdgeInsetsZero;
        weakSelf.tableView.contentOffset = CGPointMake(0, 0);
    }];
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    _scrollviewFlag = scrollView;
    self.title = _scheduleModel.name;
    if (scrollView.contentOffset.y <= 200) {
        scrollView.contentInset = UIEdgeInsetsZero;
        self.navigationController.navigationBar.alpha = (scrollView.contentOffset.y) / 200;
    }else{
        scrollView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);
        self.navigationController.navigationBar.subviews.firstObject.hidden = NO;
    }
}
//MARK: -  life cycle 生命周期
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.alpha = 0;
    if (_scrollviewFlag.contentOffset.y == 0) {
        self.navigationController.navigationBar.alpha = 0;
    }else{
        UIImage *colorImage = [UIImage imageWithColor:KGlobalColor];
        [self.navigationController.navigationBar setBackgroundImage:colorImage forBarMetrics:UIBarMetricsDefault];
        self.navigationController.navigationBar.alpha = (_scrollviewFlag.contentOffset.y) / 200;
        _scrollviewFlag.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);
        _tableView.frame = CGRectMake(0, -64, SCREEN_W ,SCREEN_H);
    }
}
-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    self.navigationController.navigationBar.alpha = (_scrollviewFlag.contentOffset.y) / 200;
    _scrollviewFlag.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);
}
-(void)viewWillDisappear:(BOOL)animated{
    _tableView.frame = CGRectMake(0, -64, SCREEN_W ,SCREEN_H);//推到后台再回来会异常,所以设置
    self.navigationController.navigationBar.alpha = 1;
}
21528184782_.pic.jpg 11528184781_.pic.jpg

相关文章

  • IOS 仿饿了么首页导航栏 渐变处理

    在项目中 很多时候我们需要 真的某个界面中的导航栏进行隐藏处理,比如饿了么的首页 导航栏默认隐藏 往上滚动 导航栏...

  • oc navigation跳转

    从显示导航栏页面跳转到隐藏导航栏的页面会闪解决方法 放在loadview里面处理 不要在viewDidLoad处理...

  • 隐藏导航栏

    隐藏导航栏 显示导航栏

  • Android隐藏状态栏、导航栏

    Android隐藏状态栏、导航栏 Android 动态隐藏显示导航栏,状态栏 一、导航栏: 相关: 二、状态栏: ...

  • iOS 状态栏(statusbar)导航栏(navigation

    导航栏透明 导航栏渐变 状态栏字体颜色改变 导航栏隐藏如果导航栏自定义度高,需要完全自己重写,可以隐藏原来的导航栏...

  • IOS 常用小知识 1

    导航栏常用隐藏方式 系统导航栏时常会限制很对视图的处理,所以经常会用到自定义导航栏,如果自定义导航栏的时候还需要保...

  • iOS 隐藏导航栏和有导航栏页面跳转

    大部分首页或者搜索页面都会隐藏导航栏 隐藏导航栏页面 --> 有导航栏页面 但是,不知道大家有没有发现 隐藏导航栏...

  • 隐藏导航栏

    使用导航栏代理 隐藏导航栏

  • iOS导航栏的正确隐藏方式

    iOS导航栏的正确隐藏方式 iOS导航栏的正确隐藏方式

  • 2019-05-14 星期二 3 of 7

    本页面不显示导航栏,下一级页面显示导航栏的处理办法 原理:在页面即将出现的时候,隐藏导航栏,动画参数直接继承使用函...

网友评论

      本文标题:导航栏的隐藏处理

      本文链接:https://www.haomeiwen.com/subject/xctmsftx.html