iOS:状态栏和导航栏:空格或底层

     2023-03-13     151

关键词:

【中文标题】iOS:状态栏和导航栏:空格或底层【英文标题】:iOS: Status bar and Navigation bar: Space or Underlaying 【发布时间】:2013-08-05 13:26:57 【问题描述】:

如何以规范的方式操作状态栏和导航?

所以,我的目标是同时隐藏和显示状态栏和导航栏。

我应该以规范的方式做什么,避免它们之间的空间,避免底层(状态栏位于导航栏上)并支持正常旋转?

我玩过它,现在我有代码了:

-(void)tryToManipulateWithTopBarsIsHidden:(BOOL)hidden
    if (self.wantsFullScreenLayout) 

        // Get status bar height if visible

        CGFloat statusBarHeight = 0;
        [self topBarsHiddenStateAppearingOrDisappearingStatusBarHidden:hidden
                                                   navigationBarHidden:hidden];
        // Get status bar height if visible
        if (![UIApplication sharedApplication].statusBarHidden) 
            CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
            statusBarHeight = MIN(statusBarFrame.size.height, statusBarFrame.size.width);
//            statusBarOrigin = MIN(statusBarFrame.origin.x,statusBarFrame.origin.y);
        

        // Set navigation bar frame
        // if status bar is visible and
        // nav bar origin in y is not the same as status bar (magic, really)
        // we need to set nav bar origin y to status bar origin y (auto shifting to bottom)
        CGRect navBarFrame = self.navigationController.navigationBar.frame;
        // if status bar is visible
        if (![UIApplication sharedApplication].statusBarHidden)
            navBarFrame.origin.y = statusBarHeight;
            navBarFrame = CGRectOffset(navBarFrame, 0.0, -20.0);
            self.navigationController.navigationBar.frame = navBarFrame;
        
        self.navigationController.navigationBar.hidden =[UIApplication sharedApplication].statusBarHidden ;
        LogRect(@"this is statusBar ", [UIApplication sharedApplication].statusBarFrame);
        LogRect(@"this is navigationBar ", navBarFrame);
    


- (void)setTopBarStatusBarHidden:(BOOL)hidden onCompletion:(void(^)(UINavigationBar*))completion andNavigationBar:(UINavigationBar*)bar
    [[UIApplication sharedApplication] setStatusBarHidden:hidden];
    completion(bar);


- (void)setTopBarNavBarHidden:(BOOL)hidden
    [self.navigationController setNavigationBarHidden:hidden animated:NO];


- (void)topBarsHiddenStateAppearingOrDisappearingStatusBarHidden:(BOOL)statusBarHidden
                                             navigationBarHidden:(BOOL)navigationBarHidden

    UINavigationBar* bar = self.navigationController.navigationBar;
    id fles = self;
    [self setTopBarStatusBarHidden:statusBarHidden
                      onCompletion:^(UINavigationBar *bar) 
                          if (statusBarHidden)
                              [fles setTopBarNavBarHidden:navigationBarHidden];
                          
                          else
                              [fles setTopBarNavBarHidden:navigationBarHidden];

                      
                  andNavigationBar:bar];

但是什么都没有!

任何人都可以解释如何在没有这种混乱(真的不工作的代码)的情况下解决这个任务吗?

【问题讨论】:

【参考方案1】:

你只要写在方法里:

self.navigationController.navigationBar.hidden = YES;
[UIApplication sharedApplication].statusBarHidden = YES;

这将同时隐藏导航栏和状态栏。

【讨论】:

请阅读我的问题:我想将它们隐藏/显示在一起,没有空间和底层 看看这里:***.com/questions/57517803/… 它可能对你有帮助。它对我没有任何作用。我尝试了列出的所有解决方案。有些人找到了成功。这是为 SwiftUI 设计的。

在 Swift iOS 8 中设置透明导航栏和状态栏的图像底图

】在SwiftiOS8中设置透明导航栏和状态栏的图像底图【英文标题】:SetImageUnderlayofTransparentNavigationBarandStatusBarinSwiftiOS8【发布时间】:2015-07-1406:23:50【问题描述】:我是iOSswift开发的新手,我遇到了一个问题。我想设置透明导航栏... 查看详情

iOS 7 中 UIActivityViewControllers 的模态状态栏和导航栏文本颜色

】iOS7中UIActivityViewControllers的模态状态栏和导航栏文本颜色【英文标题】:ModalstatusbarandnavigationbartextcolorsfromUIActivityViewControllersiniOS7【发布时间】:2013-11-0516:47:36【问题描述】:当我使用UIActivityViewController时,在用户选择一个活... 查看详情

iOS 8 -- 对导航栏和状态栏应用模糊

】iOS8--对导航栏和状态栏应用模糊【英文标题】:iOS8--ApplyblurtonavigationbarANDstatusbar【发布时间】:2015-02-0423:01:32【问题描述】:我正在尝试向导航栏和状态栏添加模糊效果。我的问题是导航栏上的模糊效果很好,但状态栏没有模... 查看详情

为啥ios中的状态栏和导航栏背景颜色不同

】为啥ios中的状态栏和导航栏背景颜色不同【英文标题】:whyStatusbarandNavigationbarbackgroundcolorsaredifferentinios为什么ios中的状态栏和导航栏背景颜色不同【发布时间】:2014-08-1414:54:06【问题描述】:我想更改状态栏的背景颜色,并... 查看详情

iOS 状态栏和导航栏颜色相同

】iOS状态栏和导航栏颜色相同【英文标题】:SamecolorforStatusBarandNavigationBariOS【发布时间】:2017-03-2614:15:22【问题描述】:我从控件中手动添加了导航栏如何使状态栏背景颜色=与导航栏相同【问题讨论】:这应该可以帮助你***.com... 查看详情

导航栏和状态栏颜色/不可见的 iOS

】导航栏和状态栏颜色/不可见的iOS【英文标题】:NavigationBarandStatusBarcolors/invisibleiOS【发布时间】:2019-04-2011:20:05【问题描述】:我正在尝试实现在控制器顶部获取图像颜色的导航栏和状态栏。我试过这两个代码:self.navigationBar... 查看详情

iOS 11、状态栏、导航栏和 UIScrollview

】iOS11、状态栏、导航栏和UIScrollview【英文标题】:iOS11,Statusbar,NavigationBarandUIScrollview【发布时间】:2017-09-1603:53:08【问题描述】:我正在对iOS11的应用程序进行一些更新,但遇到了一些我无法理解的问题。我的视图控制器以编程... 查看详情

iOS 8 启动图像文件 - 导航栏和状态栏

】iOS8启动图像文件-导航栏和状态栏【英文标题】:iOS8LaunchImageFile-NavigationBarandtheStatusBar【发布时间】:2014-10-2107:16:40【问题描述】:我正在使用InterfaceBuilder制作iOS8的启动图像文件。我想要的启动图像非常简单(我认为与设置... 查看详情

IOS7中的状态栏和导航栏问题

】IOS7中的状态栏和导航栏问题【英文标题】:StatusbarandnavigationbarissueinIOS7【发布时间】:2013-09-2915:05:25【问题描述】:我正在将我的应用程序迁移到iOS7。为了处理状态栏问题,我添加了此代码if([[[UIDevicecurrentDevice]systemVersion]floa... 查看详情

ios导航栏和状态栏

...ewController的页面布局会限制在这些Bar之间。IOS的界面分为状态栏和导航栏,状态栏是指显示电池、时间的最顶部的一个窄条,高度为20个点;而导航栏是紧接着状态栏的44个点高度的横条,一般用于显示app标题,返回按钮等操作... 查看详情

如何使导航栏和状态栏模糊(UIBlurEffect)? iOS,斯威夫特 3

】如何使导航栏和状态栏模糊(UIBlurEffect)?iOS,斯威夫特3【英文标题】:HowtomakeaNavigationBarandStatusBarblurred(UIBlurEffect)?iOS,Swift3【发布时间】:2017-01-2115:26:52【问题描述】:如何使导航栏和状态栏模糊(UIBlurEffect)?当我通过点... 查看详情

Cordova Android 应用程序导航栏和状态栏闪烁或变为纯白色

】CordovaAndroid应用程序导航栏和状态栏闪烁或变为纯白色【英文标题】:CordovaAndroidappNavigationBarandStatusBarflickerorturnsolidwhite【发布时间】:2021-11-0109:05:14【问题描述】:我们正在ZebraTC-57设备上使用Cordova9.0将我们的Web应用程序部署... 查看详情

iOS 7 UI 变化:状态栏和导航控制器

】iOS7UI变化:状态栏和导航控制器【英文标题】:iOS7UIchanges:StatusbarandNavigationcontroller【发布时间】:2013-09-1511:53:37【问题描述】:我想为iOS7更新我的应用程序。我在iOS7上从应用商店安装了应用程序,它看起来不错,UI很完美。... 查看详情

iOS MapView 位于导航栏、状态栏和标签栏控制器下

】iOSMapView位于导航栏、状态栏和标签栏控制器下【英文标题】:iOSMapViewgoesundernavigationbar,statusbar,andtabbarcontroller【发布时间】:2013-10-0312:01:10【问题描述】:我有一个带有导航控制器和标签栏控制器的ViewController。这个ViewControlle... 查看详情

ios下状态栏和导航栏的控制问题

iOS的项目多数会遇到控制状态栏和导航栏的问题,比如隐藏状态栏、控制状态栏的文字颜色等,导航栏也有同样需求。本文总结一下操作方法。首先一点,IOS的界面分为状态栏和导航栏,状态栏是指显示电池、时... 查看详情

在 iOS 7 中,状态栏和导航栏出现在我的视图边界上

】在iOS7中,状态栏和导航栏出现在我的视图边界上【英文标题】:Statusbarandnavigationbarappearovermyview\'sboundsiniOS7【发布时间】:2013-06-1220:06:41【问题描述】:我最近下载了Xcode5DP来测试我在iOS7中的应用程序。我注意到并确认的第一... 查看详情

在状态栏和导航栏之间添加图片

】在状态栏和导航栏之间添加图片【英文标题】:Addimagebetweenstatusbarandnavigationbar【发布时间】:2014-03-2904:19:56【问题描述】:我正在尝试在IOS的状态栏和导航栏之间添加图像。这可能吗?您能指导我如何实现这一目标吗?基本... 查看详情

android显示、隐藏状态栏和导航栏

参考技术AAndroid显示、隐藏状态栏和导航栏控制状态栏显示,Activity的主题中配置全屏属性控制状态栏显示,在setContentView之前设置全屏的flag控制状态栏显示,在任何位置通过添加和移除全屏的flag控制状态栏和导航栏显示,setSyst... 查看详情