0

カスタム ナビゲーション バーを持つ iPhone アプリを開発しています。私が持っているコードは次のとおりです。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIImage *testNav = [UIImage imageNamed:@"Test Nav Bar 320 wide.png"];
    [self.navigationController.navigationBar setBackgroundImage:testNav forBarMetrics:UIBarMetricsDefault];
}

アプリケーションを実行すると、問題ないように見えます。ただし、ナビゲーション バーの Retina バージョンもあります。交換すると:

@"Test Nav Bar 320 wide.png"

Retina グラフィック:

@"Test Nav Bar 640 wide.png"

ナビゲーション バーが大きくなりすぎて、画面からはみ出してしまいます。

私は何を間違っていますか?それは何か関係がありますか:

forBarMetrics:UIBarMetricsDefault

私はiOS開発にかなり慣れていないので、助けていただければ幸いです。

4

1 に答える 1

0

Apple は、システムが異なるプラットフォーム (Retina と非 Retina、iPad と iPhone など) 向けの画像を簡単に識別できるようにする画像の命名規則を使用しています。

あなたの場合、イメージnavbar.pngと Retina versionに名前を付けるだけnavbar@2x.pngです。を使用して画像を開始する[UIImage imageNamed:@"navbar.png"]と、システムが自動的に適切な画像を選択します (navbar@2x.pngどこにも言及していなくても!)。

于 2013-07-09T16:33:24.373 に答える