iPadの横向き/縦向きモードに別の画像を使用する方法はありますか? 私のナビゲーションバーには中央にロゴが含まれており、iPhone ではさまざまな画像でうまく機能しますが、iPad ではさまざまな画像を使用できないため、デバイスを回転させたときにロゴが中央に配置されません。
または、無地の背景画像を使用して、ナビゲーション バーのタイトルを画像に置き換えたり、ボタンを中央に配置したりすることもできますが、それもできませんでした。(私は UINavigationController サブクラスを持っていません)。
アプリデリゲート内でこれまでのところトリックを行っている私のコードは次のとおりです。
if ([UINavigationBar respondsToSelector:@selector(appearance)]) {
// Create resizable images for iphone
UIImage *navbarImage44 = [[UIImage imageNamed:@"nav_bar"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage *navbarImage32 = [[UIImage imageNamed:@"nav_bar_landscape"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
// Overide for iPad
// In theory navbar_bg_landscape~iPad should work
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
//use iPad specific image extending last pixel for landscape mode
[[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"nav_bar_ipad" ]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]
forBarMetrics:UIBarMetricsDefault];
}else {
// Set the background image for *all* UINavigationBars
[[UINavigationBar appearance] setBackgroundImage:navbarImage44
forBarMetrics:UIBarMetricsDefault];
// Never called on iPad, used for landscape on iPhone
[[UINavigationBar appearance] setBackgroundImage:navbarImage32
forBarMetrics:UIBarMetricsLandscapePhone];
}
}