gpt4 book ai didi

ios - UINavigationBar 背景——如何覆盖所有尺寸、分辨率和设备?

转载 作者:行者123 更新时间:2023-11-29 01:52:44 25 4
gpt4 key购买 nike

我有以下代码,可以很好地设置背景图像:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @"navbar_bg.png"] forBarMetrics:UIBarMetricsDefault];

我的问题是,对于 Xcode6、iOS8/9、iPhone 5、6、6+、iPad 等,我如何确保覆盖所有设备、宽度和分辨率,以确保我的背景图像始终填充导航栏正确吗?

我在 SO 和其他各种网站上看到过其他问题,但都已经有 2-4 年的历史了,所以不要提及或涵盖最新的设备宽度和分辨率。

我想在导航栏中使用背景图像,但我需要确保它在所有可能的设备上看起来都不错。

最佳答案

您所要做的就是在 Assets 目录中拥有图像的三个版本。第一个尺寸需要第二个尺寸的两倍,第三个尺寸的三倍。 Xcode 会将正确的图像放在正确的设备上。

或者,您可以只放置一个矢量图像,在编译时 Xcode 会为您动态生成这三个图像。

对于导航栏,您需要单独的纵向和横向图像。你可以这样写:

UIImage *portraitImage = [UIImage imageNamed:@"test_bar_portrait.png"];
UIImage *landscapeImage = [UIImage imageNamed:@"test_bar_landscape.png"];
[[UINavigationBar appearance] setBackgroundImage:portraitImage forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:landscapeImage forBarMetrics:UIBarMetricsLandscapePhone];
self.navigationController.navigationBar.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;

关于ios - UINavigationBar 背景——如何覆盖所有尺寸、分辨率和设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31233992/

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