2017-10-10 8 views

답변

0

이미지를 세로로 늘리지 않으려면 두 개의 배경 이미지 (모든 장치에 하나, iPhone X에 하나)를 사용하십시오 (앱이 세로 및 가로 모두에서 작동하는 경우 2보다 큰 숫자를 사용해야 함). ..) :

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) 
1

사용이 코드 :

self.navigationBar.setBackgroundImage(UIImage(named: "navbar background").resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 0, bottom: 0 ,right: 0), resizingMode: .stretch), for: .default)