如何在不同的iOS设备上为UINavigationBar设置背景图像 [英] How to set background image for UINavigationBar on different iOS Devices
本文介绍了如何在不同的iOS设备上为UINavigationBar设置背景图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在UINavigationBar
上设置完整图像,为此,我有:
I want to set full image on UINavigationBar
, for this I have:
@2x image (640 x 128)
@3x image (960 x 192)
以下截图是问题所在:
请参阅此黄色轮廓.这部分正在切割.
Please refer this yellow outline. This portion is cutting.
我已经编写了以下代码来添加图片:
I have written this code to add image:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"nav-bar-b"),for: .any, barMetrics: .default)
}
请帮助我提供更好的解决方案.
Please help me to provide a better solution.
推荐答案
我已经解决了以下问题:-
I have fixed this issue like this :-
根据设备尺寸获取导航图像,否则会破坏导航图像.
Take navigation image base on device size otherwise destroyed navigation image.
iPhone 6P =>//1242×191像素
iPhone 6 =>//750×128像素
iPhone 5 =>//640×128像素
iPhone 6P => //1242 × 191 pixels
iPhone 6 = > //750 × 128 pixels
iPhone 5 = > //640 × 128 pixels
func SetNavigationImage()
{
var navBackgroundImage:UIImage!
if IS_IPHONE_6P
{
navBackgroundImage = UIImage(named: "nav-bar-b_1242×191") //1242 × 191 pixels
}else if IS_IPHONE_6
{
navBackgroundImage = UIImage(named: "nav-bar-b_750×128")//750 × 128 pixels
}
else
{
navBackgroundImage = UIImage(named: "nav-bar-b_640×128")//640 × 128 pixels
}
UITabBar.appearance().layer.borderWidth = 0.0
UITabBar.appearance().clipsToBounds = true
UINavigationBar.appearance().isTranslucent = false
UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
UINavigationBar.appearance().setBackgroundImage(navBackgroundImage, for:.default)
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().tintColor = .white
}
var IS_IPHONE_4_OR_LESS = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH < 568.0
var IS_IPHONE_5 = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH == 568.0
var IS_IPHONE_6 = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH == 667.0
var IS_IPHONE_6P = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH == 736.0
这篇关于如何在不同的iOS设备上为UINavigationBar设置背景图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文