4

setBackgroundImage: forBarMetrics:設定方法を使用して、ナビゲーション バーの背景画像を変更しようとしています。

問題は、画像がバーに収まらないことです。画像が元のサイズの少なくとも 2 倍に引き伸ばされているように見えます...

画像サイズは320×44で……

画像の名前を @2x に変更しようとしましたが、何も変わりませんでした...

この画像を割り当てようとしましnavigationItem.titleViewたが、ビューが端で切れてしまいました...

画像が引き伸ばされないように画像を設定する方法のヒントはありますか?

UINavigationBar *naviBar = [self.navigationController navigationBar];
UIImage *img = [UIImage imageNamed:@"NavBar02@2x.png"];
[naviBar setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];

前もって感謝します

4

3 に答える 3

14

やっと手に入れた!

問題:ナビゲーションバーは320 x 44ピクセルの画像を取得します。これは、iPhoneの各ポイントが2ピクセルであるため、ナビゲーションバーにポイントを使用している場合、使用する画像は4倍に引き伸ばされたように見えます(yの場合は2x、 x座標)。

これを解決するには、ファイル拡張子@ 2xを画像ファイルに追加するだけです(例:yourImgName@2x.png)。Xcodeにドラッグする前に、名前を変更する必要があります。Xcodeで名前を変更しようとすると機能しません。

ps。コードに@2xを含めないでください。ファイル名は、[UIImage imageNamed:@"yourImgName.png"]のようになります。

お役に立てれば

于 2012-07-25T00:44:30.120 に答える
1

2つの画像が必要です。1 つは 320x44 ピクセルで、名前は NavBar02.png です。もう 1 つは 640x88 ピクセルで、名前は NavBar02@2x.png です。

iOS は、デバイスの解像度に基づいて適切な画像を選択します。

于 2012-07-20T13:01:10.293 に答える