本文介绍了如何在不同的 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 设置背景图片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!