1

とを使用しているアプリがUITabBarありUINavigationBarます。UIImageView背景画像を含むを作成し、それUIImageViewself.viewサブビューとして追加します。これにより、背景が垂直に「押しつぶされた」ように見えます。背景画像は、NavBarの下部まで開始されず、TabBarの後ろに表示されます。

背景を追加するために使用しているコードは次のとおりです。

UIImageView* backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
    [backgroundView setFrame:CGRectMake(0, 0, 320, 480)];
    [self.view addSubview:backgroundView];

背景の実際のサイズを維持する方法についてのアイデアは大歓迎です。

4

2 に答える 2

2

まずUINavigationBar、iPhone / iPod 5以外のプレゼントで使用できる高さは480ポイントではありませんself.view.frame.size.height。実際のサイズを取得するには、を使用する必要があります。実際には、フレームをビューの境界に設定する必要があります。

[backgroundView setFrame:self.view.bounds];

次に、のcontentModeプロパティを設定する必要がありますUIImageView

[backgroundView setContentMode:UIViewContentModeScaleAspectFill]; //Set UIViewContentModeScaleAspectFit if you want to show the full image with the potential of a letterbox

それはあなたの問題を解決するはずです。

于 2012-10-19T05:13:53.700 に答える
0

何を求めているのかよくわかりません。はい、タブバーコントローラーまたはナビゲーションコントローラーに属するビューは、残りの画面スペースに合わせてサイズ変更されますが、他のUI要素によって消費されるスペースを考慮すると、画像ビューに残っているスペースの量が正確にわかります。

ステータスバー:320 x 20(ポートレート)、480 x 20(ランドスケープ)ナビゲーションバー:320 x 44(ポートレート)、480 x 34(ランドスケープ)タブバー:320 x 49(ポートレート)、480 x 49(ランドスケープ)

したがって、基本的に、画像ビューに使用できるスペースは次のとおりです。

ポートレート:320 x 367ランドスペース:480 x 217

これらの寸法を念頭に置いてDefault.pngを設計します。正直なところ、最初の画面をDefault.pngと一致させる最も簡単な方法は、iOSシミュレーターのスクリーンショットを撮ることです。

于 2012-10-19T05:55:50.970 に答える