2017-10-10 3 views
0

ナビゲーションバーの背景画像を設定しようとしています。それは他のすべてのデバイスで動作していますが、iPhone Xではサイズが大きくなるため動作しません。iPhone Xを含むすべてのデバイスのナビゲーションバーの背景イメージを設定するには?

+0

"動作しない" ...どうやって?詳細を教えてください。どのように動作していないのですか? – PeejWeej

答えて

0

画像を縦向きに伸ばしたくない場合は、2つの背景画像(すべての端末用とiPhone用)を使用してください(アプリが縦と横の両方で動作する場合は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) 
関連する問題