gpt4 book ai didi

ios - iPhone 6 的 UINavigationBar 背景图片

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:43 24 4
gpt4 key购买 nike

我正在尝试将背景图像添加到 UINavigationBarController 的 NavigationBar

[viewController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavBarBackground"] forBarMetrics:UIBarMetricsDefault];

在我的 Assets 中我有一个

  • NavBarBackground.png,
  • NavBarBackground@x2.png,
  • NavBarBackground@x3.png

Apple 文档中提到了分辨率:

  • iPhone 5/5c/5s/6 @x2(视网膜)
  • iPhone 6+ @x3(视网膜高清)

但是

  • iPhone 5(&co) 的屏幕宽度为 640px
  • iPhone 6 的屏幕宽度为 750px

如何处理 iPhone 6 外壳,而无需在我的 setBackgroundImage 方法中使用仅用于 iPhone 6 的扩展名命名其他图像?

最佳答案

问题是 iPhone 6/iPhone 6+ 上的导航栏与所有其他 iPhone 型号相比具有不同的纵横比。所以在这种情况下,您需要一个不同的图像集。

但是,如果图像只是彩色背景,我建议使用以下代码:

[viewController.navigationBar setBackgroundImage:[self imageWithColor:[UIColor greenColor]] forBarMetrics:UIBarMetricsDefaults

并实现以下方法:

- (UIImage *)imageWithColor:(UIColor *)color{
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image;
}

关于ios - iPhone 6 的 UINavigationBar 背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26105366/

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