iOS开发中隐藏状态栏和导航栏

先看效果图:

1.隐藏导航栏、状态栏.gif

需求:

当用户上拉Tableview的时候导航栏和状态栏同时消失,而当用户下拉Tableview的时候导航栏和状态栏又同时显示。

实现:

在scrollViewDidScroll方法中去监听Tableview的偏移量,然后根据偏移量来对导航栏和状态栏进行隐藏或显示。

注意:

隐藏导航栏的方法我们常用,可隐藏状态栏的方法并不常用。
隐藏状态栏的方法:
[self setNeedsStatusBarAppearanceUpdate];
- (BOOL)prefersStatusBarHidden{
return hiddenStatusBar;
}

核心代码:

  - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat newY= scrollView.contentOffset.y;
NSLog(@"newY:===%f", newY);
if (newY < 0) {
    hiddenStatusBar = NO;
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}else{
    if (newY != lastContentOffset ) {
        if (newY > lastContentOffset) { // scroll下滑...
            hiddenStatusBar = YES;
            [self.navigationController setNavigationBarHidden:YES animated:YES];
            
        }else{  // scroll上滑...
            hiddenStatusBar = NO;
            [self.navigationController setNavigationBarHidden:NO animated:YES];
            
        }
        lastContentOffset = newY;   // 记录上一次的偏移量
    }
}

[self setNeedsStatusBarAppearanceUpdate];   // 刷新状态栏的隐藏状态

}

demo地址:https://gitee.com/liangsenliangsen/hide_the_status_bar.git
本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容