願這也有幫助,它的做工精細(如果你的圖像或陰影不同的),你可以用這一個也不過不同的圖像,你必須設置爲每個設備的規模:
NSLog(@"width is :%f",[[UIScreen mainScreen] bounds].size.width);
UIImage *navBarImage =nil;
if ([[UIScreen mainScreen] bounds].size.width==375.0f) {
navBarImage = [[UIImage imageNamed: @"[email protected]"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
else if ([[UIScreen mainScreen] bounds].size.width==414.0f) {
navBarImage = [[UIImage imageNamed: @"[email protected]"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
else{
navBarImage = [[UIImage imageNamed: @"header-topbg"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
你可以看到下面的圖片爲iphone6 +:
謝謝。
iPhone 6不使用'@ 3x'圖形,因爲像素密度與iPhone 5相同並且下降。只有iPhone 6 Plus纔會使用'@ 3x'圖像。我懷疑問題在於圖像的「伸展」? – dbart 2014-10-05 14:53:17
感謝您的回答。不完全是,圖像正在重複。 – Vico 2014-10-05 14:54:56
最好的解決方案是採用「可拉伸」圖像。在這種情況下,您可以爲所有屏幕尺寸使用單個圖像。你的導航欄圖像是什麼樣的?你能發佈一個屏幕截圖嗎? – dbart 2014-10-05 14:57:38