0
我想設置背景圖片的導航欄。它的工作對所有其他設備,但在iPhone X它不工作,由於增加的大小。如何設置導航欄的背景圖像,包括iPhone X的所有設備?
我想設置背景圖片的導航欄。它的工作對所有其他設備,但在iPhone X它不工作,由於增加的大小。如何設置導航欄的背景圖像,包括iPhone X的所有設備?
如果你不想垂直方向上拉伸你的形象,如果同時在縱向和橫向您的應用程序的工作,你必須使用超過2只使用2張背景圖片,一個爲所有的設備和一個用於iPhone X(.. ..):
ObjC:
if (MAX([[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height) == 812.0) {
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar_X.png"]
forBarMetrics:UIBarMetricsDefault];
}
else
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar.png"]
forBarMetrics:UIBarMetricsDefault];
斯威夫特:
if max(UIScreen.main.bounds.size.width, UIScreen.main.bounds.size.height) == 812.0 {
UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBar_X.png"), for: .default)
}
else {
UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBar.png"), for: .default)
}
如果你的圖像看起來不錯垂直拉伸:
ObjC:
[[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"navigationBar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0) resizingMode:UIImageResizingModeStretch] forBarMetrics:UIBarMetricsDefault];
斯威夫特:
UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBar.png")!.resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 0, bottom: 0 ,right: 0), resizingMode: .stretch), for: .default)
使用此代碼:
self.navigationBar.setBackgroundImage(UIImage(named: "navbar background").resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 0, bottom: 0 ,right: 0), resizingMode: .stretch), for: .default)
「不工作」 ......怎麼樣?給我們一些細節。它怎麼不起作用? – PeejWeej