0

エミュレータにこれが表示されます:

ここに画像の説明を入力

また、背景画像が画面全体に広がっていない理由もわかりません。

1 つの可能性は、何らかの理由で、エミュレーターがデフォルトで水平ビューで開始され、投稿した画像に到達するために左にシフトする必要があることです。

おそらく修正は、デフォルトを縦表示にすることですか?どうすれば設定できますか?ある日突然、縦向きではなく横向きのビューをデフォルトとして使用し始めた理由は実際にはわかりません。

ありがとう、アレックス

編集:

背景画像を設定する方法は次のとおりです。

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
    {
        //load iphone image
        UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"building"]];
        imgView.frame = self.view.bounds; // to set the frame to your view's size
        [self.view addSubview:imgView];
        [self.view sendSubviewToBack:imgView];
    }
    else
    {
        //load ipad image
        UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"building@2x"]];
        imgView.frame = self.view.bounds; // to set the frame to your view's size
        [self.view addSubview:imgView];
        [self.view sendSubviewToBack:imgView];
    }
}
4

1 に答える 1

2

いいえ、ステータスバーが正しく表示されるので、それは理由ではありません。InterfaceBuilderを使用しますか、それともプログラムでUIImageViewを追加しますか?

IBを使用している場合、背景画像をどのように設定しますか?プログラムで追加する場合UIImageView、フレームにどのサイズを設定しますか?または、パターンを使用して背景色を設定しているのでしょうか。

たぶんあなたのXIBは水平方向を持っていますか?

属性インスペクターまたはいくつかのコードを使用して、XIBのスクリーンショットを投稿してください。

編集

@2xまず、正しく使用していません。これは、Xcodeイメージタグによって管理されるiPhoneレギュラーまたはiPhoneRetinaです。

そして、これがエラーが発生する理由です。

imgView.frame = self.view.bounds;

境界はフレームとは異なります。使用してみてください:

imgView.frame = self.view.frame;

その理由は次のとおりです。ビューのフレームとビューのバウンド+iPhoneの違い

フレームは、スーパービューの座標系を使用した、スーパービュー内のビューの位置です。

境界は、独自の座標系での位置とサイズです。

これは素晴らしい説明です。したがって、境界を使用している場合、幅と高さが混乱している可能性があります。それを試してみるNSLogpo、デバッガーで試してみてください。

于 2012-12-14T18:03:49.737 に答える