1

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];
        }



    }
4

1 に答える 1

1

これについて何の反応も得られなかったので、横向きで画像のサイズを変更する回避策を見つけました。私は今のところそれで大丈夫です。ポートレートの背景画像のサイズを変更しています-iPad用のコードは次のとおりです

    // Create resizable images
                UIImage *ipadTabBarBG = [[UIImage imageNamed:@"nav_bar_ipad.png"]
                                            resizableImageWithCapInsets:UIEdgeInsetsMake(0, -260, 0, 0)];

// Set the background image for *all* UINavigationBars
            [[UINavigationBar appearance] setBackgroundImage:ipadTabBarBG
                                               forBarMetrics:UIBarMetricsDefault];
于 2013-07-11T20:00:11.953 に答える