相关疑难解决方法(0)

如何在iOS 11中更改navigationBar高度?

显然,改变的导航栏高度在以前的IOS版本,有可能通过隐藏默认的导航栏,添加一个新的自定义框架改变的导航栏高度面临着一种新的方法在iOS的11:

self.navigationController?.setNavigationBarHidden(true, animated: false)
let customNavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 64))
self.view.addSubview(customNavigationBar)
Run Code Online (Sandbox Code Playgroud)

但它似乎无法在iOS 11 xCode beta中运行.无论新高度是多少,它都会保持在44.

这就是我在xCode 9中得到的:

在此输入图像描述

有谁知道如何解决这个问题?

uinavigationbar ios swift ios11 xcode9

24
推荐指数
2
解决办法
2万
查看次数

ios 11自定义导航栏位于状态栏下

刚下载了xcode 9,我有这个奇怪的问题,在ios 11上,我的自定义导航栏看起来是一半大小并且在状态栏下,在ios 10上工作正常.

所以这是我的代码

let newNavbar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 64))
let navItem = UINavigationItem()

//create and assign the items

newNavbar.setItems([navItem], animated: false)
view.addSubview(newNavbar)
Run Code Online (Sandbox Code Playgroud)

这是一个截图,左边是ios11,右边是ios10,

在此输入图像描述

swift ios11

13
推荐指数
2
解决办法
2万
查看次数

不推荐使用setStatusBarHidden,但只能使用它

我已经尝试了所有可以找到的解决方案,包括:在iOS 9.0中不推荐使用setStatusBarHidden,但它们都不适用于我的应用程序.

它是一个简单的单视图应用程序.导航栏上有一个按钮,状态栏应显示在其上.

在我的.plist中:

状态栏最初隐藏:NO

状态栏样式:UIStatusBarStyleLightContent

基于视图控制器的状态栏外观:否

改变任何这些似乎都没有任何区别.我已选中状态栏样式"在应用程序启动期间隐藏"选项,因为我不希望它出现在启动画面上.

我有:

- (BOOL)prefersStatusBarHidden 
{
    return NO;
}

-(UIStatusBarStyle)preferredStatusBarStyle
{
    NSLog(@"style");
    return UIStatusBarStyleLightContent;
}
Run Code Online (Sandbox Code Playgroud)

setNeedsStatusBarAppearanceUpdate这肯定是所有调用的时候,视图负载在我的ViewController.

视图在.storyboard中建立,但许多字段也在ViewController.m中进行操作.分配给模拟指标中状态栏的值似乎也没有任何影响.

我需要在启动屏幕中隐藏状态栏并在viewController上显示.请帮我找一个不使用已弃用的setStatusbarHidden的解决方案!

编辑:

我还没有解决这个问题,我肯定不会是唯一一个遇到这个问题的人!它发生在我写的两个应用程序中.

objective-c ipad ios xcode6 ios9

12
推荐指数
2
解决办法
7447
查看次数

标签 统计

ios ×2

ios11 ×2

swift ×2

ios9 ×1

ipad ×1

objective-c ×1

uinavigationbar ×1

xcode6 ×1

xcode9 ×1