本文将帮助您使用Xcode 10或更高版本来更改UIStatusBar样式。 之前我们使用App.app()。statusBarStyle = .default更改UIStatusBar的外观。 从iOS 9.0开始不推荐使用。 现在让我们检查如何更改UIStatusBar样式。 步骤1: 创建单个视图应用程序,在Info.plist中添加一个参数“ 基于视图控制器的状态栏外观 ”,并将其设置为“ NO ”。 第2步: 我们必须重写“ preferredStatusBarStyle ”并调用“ setNeedsStatusBarAppearanceUpdate ”以更改我们的状态栏样式。 例如:覆盖var preferredStatusBarStyle:UIStatusBarStyle {return .default} setNeedsStatusBarAppearanceUpdate() 让我们尝试通过2个按钮操作来更改状态栏的颜色。 在我们的ViewController中定义一个变量 var isDefault:Bool = false 在情节提要中的View Controller中添加2个名为Black和White的按钮,并为它们创建相应的IBAction。 @IBAction func black(_ sender:Any){ isDefault = true setNeedsStatusBarAppearanceUpdate() } @IBAction func white(_ sender:Any){ isDefault =假 setNeedsStatusBarAppearanceUpdate() } 这就对了。 现在,该应用程序将通过按钮操作更改状态栏颜色。
我已经被苹果正在制作状态栏覆盖viewController …或者我的应用程序的界限的事实。 有什么方法可以将StoryBoard中的TitleBar向下移动? 还是我不得不猜猜在哪里放置它? 我很困惑该怎么做,现在iOS7已经到来了。 这是我在应用程序和故事板中的TitleBar: 和: 我该怎么做这个工作? 这是我希望它看起来像没有绿色,但黑色。 我什至试过这个post,但没有任何帮助。 iOS 7 – 调整状态栏
问题很简单,Profile viewController在状态栏下面有一个NavigationBar。 我推另一个viewController在当前之一。 这个新的viewController隐藏状态栏。 当我回到Profile viewController时,navigationBar已经向上移动了状态栏高度的大小。 我试图强制在我的viewWillAppear刷新布局,但它不工作。 有任何想法吗?
我的设备中的时钟,载波,电池部分是正常的,就像第一张照片一样。 当我打开我的应用程序,在内存中加载应用程序后,它开始animation,并使导航栏粗体和更大的字体。 我甚至不确定这是好事还是坏事,但我想知道这是怎么发生的。 这里是我如何设置rootVC,如果它与这个问题有任何关系: window = UIWindow(frame: UIScreen.mainScreen().bounds) window!.rootViewController = VCOrganizer.LaunchVCHolder window!.backgroundColor = QorumColors.ThemeBlue window!.makeKeyAndVisible()
我的状态栏有一些问题。 这是一个iPhone应用程序,而不是一个iPad应用程序。 我想在应用程序的每个地方都有一个黑色的半透明的状态栏。 我已经在应用程序plist中设置了状态栏的样式。 它被设置为黑色半透明。 我的理解是,当这个设置,所有的意见的布局将开始在0,0而不是0,20,就像你有一个不透明的状态栏。 这就是为什么IB给你select指定什么样的状态栏的提示,因此它可以模拟它并在IB中正确显示它。 (是的,所有我在IB的意见被设置为显示一个黑色的半透明状态栏)。 布局是从0,0完成的,因此状态栏会覆盖您的视图以显示某些内容。 而在IB,它工作正常。 但在我的应用程序不。 我的应用程序是基于标签栏的应用程序,只有其中一个视图看起来是正确的,即使它们都设置相同。 为了使这一个视图正常工作,我必须将背景视图图像设置为0,-20,将主视图设置为NOT剪辑子视图。 所以看起来黑色半透明的布局是不正确的。 另外,我所有的其他选项卡视图都以相同的方式设置,而不是将子视图和主背景视图设置为0,-20。 但只有在第一个标签中,这实际上是“工作”。 这里有一些图片: 它应该如何看(但仍然必须设置背景为0,-20): 另一个选项卡,具有完全相同的设置,如下所示: 为了确保这是一个blacl半透明的状态栏,没有背景覆盖,我试了一下没有背景: 和另一种背景(另一种是直的蓝色,没有轻微的拉丝效果): 因为所有三个不工作的例子(没有背景,实际和替代)的状态栏看起来完全一样,我认为状态栏是正确的sorting,黑色半透明,但没有任何背后透露。 我的几个标签都有这个问题,并且所有在导航控制器的选项卡中循环的视图都有这个问题。 他们都设置为“剪辑子视图”设置为“否”和背景的起源设置为0,-20 我认为“工作”一个不工作,但看起来像是背景视图中的负偏移。 我认为它实际上应该设置为0,0,并工作。 但是主要的IB提供的视图的起源被设置为0,20,它是灰色的,所以我不能改变它。 此外,我还有一个问题,一个设置选项卡,我使用不同的外观和感觉(更多的iPhone看起来),黑色半透明甚至没有生效。 我从一个编程构造的视图开始,它显示一个灰色的状态栏: 钻到笔尖支持的意见,他们看起来是一样的: 而且这些视图被devise成好像是一个灰色的状态栏,下降了20个像素(在IB中它们被设置为黑色半透明,所以我把它们放大了20个像素) 我已经尝试除了应用程序plist条目以编程方式设置状态栏样式,但它没有任何效果(在任何这些选项卡上)。 我一直在研究这个(Google,stackoverflow,apple.com)几个星期。 但没有发现我应该做什么的迹象。 ETA: wantsFullScreenLayout解决了其中一个问题,所以我将其标记为已解决。 我已经提出了一个新的问题,其中最初提出的两个问题之一是更新的问题,其中包含新的图片,描述等,并提供更多适用的标题,因为问题不是uistatusbar本身。 新的问题在于新的问题
我有一个现有的应用程序,在iPhone X模拟器上运行时发生崩溃。 (断点停在main.m文件上)。 该应用程序在iPhone 8模拟器上运行良好,所以它与iPhone X有一定的关系。另外,它与状态栏有关,因为在崩溃之前,堆栈会显示[UIStatusbar _prepareForVisualProviderIfNeeded]。 我需要做一些状态栏来在iPhone X模拟器上运行这个应用程序吗?
在执行一些networking操作时,我提出了一个模式视图控制器(类似于MBProgressHUD,但是作为视图控制器),以防止用户交互并指示进度。 视图控制器具有modalPresentationStyle = .Custom并使用转换委托和自定义表示控制器进行animation处理。 除了animation过渡之外,他们没有自定义操作来驱动演示文稿。 我有的问题是,无论何时呈现视图控制器,它将状态栏颜色黑色。 我可以重写preferredStatusBarStyle ,使其始终返回.LightContent但有时这个视图控制器是通过一个视图控制器与.Default呈现,我不想在那里改变它。 基本上,我想拥有与UIAlertController相同的行为。 我已经尝试configuration演示文稿控制器以将呈现的视图控制器移出状态栏空间: private class SEUIProgressControllerPresentationController: UIPresentationController { override func shouldPresentInFullscreen() -> Bool { return false } private override func frameOfPresentedViewInContainerView() -> CGRect { return super.frameOfPresentedViewInContainerView().insetBy(dx: 40, dy: 100) } … } 这些设置确实将所呈现的控制器的顶部移出状态栏,但状态栏仍然受到影响。 有没有一个财产我缺less,将停止我的视图控制器更新状态栏的风格?
在XCode 5中,如果检查状态栏 :在项目目标设置中启动应用程序时隐藏 。 在iOS7中,应用程序按预期工作,启动后应用程序具有可见的状态栏 不过在iOS6中,应用程序启动后隐藏了状态栏 任何build议如何使应用程序启动时隐藏状态栏,在iOS6和iOS7上工作?
我有一个UIWebView作为UINavigationController的根视图。 当一个网页完成加载,我隐藏导航栏,我正在寻找一种方法来显示它。 现在,当用户点击状态栏时,我试图这样做( 这种方法在我看来比我想要的更复杂)。 为了做到这一点,首先我得到了webView的scrollView: for (id subview in mainWebView.subviews) { if ([[subview class] isSubclassOfClass: [UIScrollView class]]) { ((UIScrollView *)subview).delegate = self; } } 然后我使用委托方法: -(BOOL) scrollViewShouldScrollToTop:(UIScrollView *)scrollView { [self.navigationController setNavigationBarHidden:NO animated:YES]; return NO; } 我希望这可以工作,但是这是发生了什么事情: 页面加载和导航栏被隐藏(这很好) 我尝试点击状态栏,但没有发生(这是不好的) 我向下滚动,以便webview远离状态栏 不让webview去,我用另一个手指点击状态栏,它的工作原理! (这很奇怪 :) Soooo,有关于此的任何帮助? 为什么发生这种情况?
我隐藏导航栏在其中一个屏幕上,如果设置: navigationController?.navigationBarHidden = true 状态栏变黑。 此外,图像不适合所有的屏幕(见屏幕截图)。 如果我注释这一行,导航栏停留在屏幕上,状态栏是白色的。 完整代码: override func viewWillAppear(animated: Bool) { navigationController?.navigationBarHidden = true navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) navigationController?.navigationBar.translucent = true navigationController?.navigationBar.backgroundColor = UIColor.clearColor() navigationController?.view.backgroundColor = UIColor.clearColor() ImageView的所有约束都设置为0,并将其设置为填充屏幕: 所以,我想把ImageView放在状态栏下,并使状态栏的图标/文字变成白色。 我做错了什么?