0

Default-568h@2x.png 起動イメージをアプリに追加しました。アプリは、「実際の」起動画像の後に2 番目の起動画像を表示する必要があります。UIImage imageNamed: メソッドは Retina イメージを自動的にロードする方法で背の高いイメージを自動的にロードしないため、画面サイズを検出して正しいイメージを表示するコードを追加しました。

-(void)pickRightImage
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    UIImageView *imgv = [self loadingImage];

    UIImage *img;

    if(result.height == 480)
    {
        img = [UIImage imageNamed:@"loading_screen.png"];
    } else if([UIScreen mainScreen].scale == 2.f && result.height == 568) {
        // iPhone 5
       img = [UIImage imageNamed:@"loading_screen-568h@2x.png"];       
    }
    [imgv setImage:img];
}

imageView は、MainWindow という名前の NIB の画面全体を占有し、「起動時にフルスクリーン」という名前のチェックボックスを選択しましたが、画像が画面全体を占有することはありません。(起動画像はそうですが。) 2 番目の画像は、小さい画像であるかのようにレター ボックスで囲まれています。背の高い起動画像は含めたことがありません。

4インチのiphone5にプログラムで全画面画像を表示する方法はありますか? 画像が常にサイズ変更されるのはなぜですか?

4

2 に答える 2

4

[UIImage imageNamed:]を追加@2xします。だからあなたはただ指定するべきです

img = [UIImage imageNamed:@"loading_screen-568h.png"];

また、4 インチの画面と Retina 基準 (スケール = 2) の両方をテストしても意味がありません。4 インチの画面 (高さ 568 ピクセル) を持つすべてのデバイスは Retina ディスプレイであるため、高さ == 568 の場合、ユーザーはiPhone 5 : 交換

if ([UIScreen mainScreen].scale == 2.f && result.height == 568)

if ([UIScreen mainScreen].bounds.size.height == 568)

そして、あなたは良いです。

于 2012-09-28T16:30:00.777 に答える
1

これをメインのView Controllerでテストしました。また、[ターゲット] > [概要] > [ステータス バー] > [可視性] で、[アプリケーションの起動時に非表示にする] をオンにします。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIImageView *iv = [[UIImageView alloc] initWithFrame:self.view.bounds];
    iv.image = [UIImage imageNamed:@"Second-default568h@2x.png"];
    [self.view addSubview:iv];
}
于 2012-09-28T16:40:45.360 に答える