0

MVCのナビゲーションアイテムのバーボタンアイテムに網膜解像度画像(40x40p)を使用したかったのです。画像を設定すると、期待どおりに水平方向に引き伸ばされたように見えました。

拡大ナビゲーションアイテムボタン画像

Appleの仕様で要求されている網膜解像度(60px60p)のツールバーボタン画像もあります。サイズパラメータがデフォルト値、つまり幅= 0のインセットを持っている場合も、同様に引き伸ばされました。t = 0、b = 0、l = 0、r = 0:

ここに画像の説明を入力してください

ただし、ナビゲーターアイテムとは異なり、ツールバーの場合、これらの値をIBから正常に変更できました。width = 30に設定し、t = 5、b = 5、l = 5、r = 5を挿入すると、ツールバーボタンが完全に表示されます。

完全にスケーリングされた高解像度ツールバーボタンの画像

サイズインスペクターを使用して、ナビゲーションアイテムのバーボタンアイテムの幅とはめ込み値を設定しようとすると、効果がないように見えました。歯車の画像はまだ伸びているように見えました。

また、ナビゲーションアイテムにバーボタンアイテムをコードで作成し、幅とインセットを設定してみましたが、どちらも機能しませんでした。

        UIImage *image = [UIImage imageNamed:@"073-Setting@2x.png"];
    //--------------------------------------------------------------------
    // This line had no effect for a bar button item on a navigation item:
    image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5.0,5.0,5.0,5.0)];
    //--------------------------------------------------------------------
    UIBarButtonItem *button = [[UIBarButtonItem alloc] 
                               initWithImage:image 
                               style:UIBarButtonItemStylePlain
                               target:self
                               action:@selector(handleBack:)];
    //--------------------------------------------------------------------
    // This line had no effect for a bar button item on a navigation item:
    button.width = 30;
    //--------------------------------------------------------------------

私が何か間違ったことをしているのか、これはバグのように見えるのか、どんな考えでも。私の展開ターゲットはIOS5.0です。

4

1 に答える 1

0

この問題の背後にある理由を理解しました。アプリのバンドル内に通常の画像と高解像度(@ 2x)の両方の画像をパックする必要があることを知りませんでした。私は素朴に高解像度の画像を含めて、それが機能することを期待していました。私はiPhoneストーリーボードしか持っていないので、バンドル内の各画像の20ピクセルバージョンと40ピクセルバージョンを含めると、問題が解決しました。

その結果、ボタンの幅やはめ込みをいじくり回す必要はありません。この問題は修正されました。

于 2012-06-27T11:08:14.873 に答える