gpt4 book ai didi

iOS 11 UINavigationBar 自定义背景总是在状态栏下延伸

转载 作者:技术小花猫 更新时间:2023-10-29 11:22:50 26 4
gpt4 key购买 nike

我正在为我的导航 Controller 导航栏应用自定义背景

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar"] forBarPosition:UIBarPositionTop barMetrics:UIBarMetricsDefault];

iOS10

在 iOS10 中,背景被正确应用并且导航栏出现在状态栏下方:

right

iOS11

但是在 iOS11 中,背景图像看起来总是应用在状态栏后面。我已经为“forBarPosition”尝试了不同的值,但这并没有改变行为。

wrong

我已经在一个独立的应用程序中隔离了这个问题,这个应用程序只有一个 uinavigationcontroller 和一行代码,如上所述。我正在使用 iPhone 8 模拟器对此进行测试。我在我的应用程序中使用标准导航 Controller 和导航栏类。

我做错了什么?

最佳答案

我遇到了同样的问题。与您一样,forBarPosition 没有采取任何措施来解决问题,即使它看起来应该如此。

我将我的解决方案称为变通办法。

我使用的图像是 44 像素高。因为我知道状态栏是 20px,所以我创建了一个 64px 高的新图像。我想要的效果包括在状态栏下扩展图像,这就像我想要的那样工作。

状态栏是透明的,因此您可以将顶部 20px 设置为黑色或透明或任何您想要的效果。

到目前为止,这在运行 iOS 11 的模拟器和 iPhone SE 设备以及运行 iOS 9.3.5 的 iPod touch 设备上对我有用。

希望对你有帮助。

编辑:加一分。对我也有用的是使用 stretchable image .这填满了整个空间而没有像您的示例中那样重复,但是,我使用的图像无法拉伸(stretch),因此最终这对我的场景不起作用。

关于iOS 11 UINavigationBar 自定义背景总是在状态栏下延伸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46481910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com