1

適切な解像度で 3 つの起動イメージ (デフォルト Default@2x Default-568@2x) を作成しました。これらの画像を最初のビュー コントローラーの背景画像として使用したいと思います。

ただし、起動イメージをデザインしたときは、ステータスバーを念頭に置き、その領域を空白のままにしました。次のコードを使用してビュー コントローラーの背景画像を起動画像に設定しようとすると、起動画像がステータス バーの下部から始まり、空白の領域が表示されます。基本的に、私の 640x1136 起動イメージは 640x1096 スペースに圧縮されています。私が試みていることを行う適切な方法は何ですか?

   UIImage *backgroundImage = [[UIImage alloc]init];
if ([[UIScreen mainScreen] bounds].size.height == 568) {
    backgroundImage = [UIImage imageNamed:@"Default-568h@2x"];
}
else{
    backgroundImage = [UIImage imageNamed:@"Default"];
}

UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];
[backgroundImageView setFrame:[[self view] bounds]];
[[self view] addSubview:backgroundImageView];

アップデート:

私は置き換えました:

[backgroundImageView setFrame:[[self view] bounds]];

と:

[backgroundImageView setFrame:CGRectMake(0 ,-20,self.view.frame.size.width , self.view.frame.size.height+20)]; 

そして、それは今私が望むように振る舞っているようです。

4

2 に答える 2

1

これを試して:

[self.view setBackgroundColor:[UIColor colorWithPatternImage:backgroundImage]];

また、プログラムで backgroundImageView のフレームを設定しないようにしてください。を呼び出したときのサイズになっているはずですinitWithImage:

于 2013-03-06T04:22:32.980 に答える
0

空白領域を含まない未編集の画像を使用します。これはうまくいきます。

[backgroundImageView setFrame:[[self view] bounds]];これを次のコードに置き換えて確認 してください。

  int statusBarHeight = statusBar.frame.size.height;

  backgroundImageView.frame = CGRectMake(0 ,statusBarHeight,self.view.frame.size.width , self.view.frame.size.height-statusBarHeight);
于 2013-03-06T04:23:04.897 に答える