私の iPhone アプリでは、iPhone 5 であるかどうかに応じて、特定の背景画像を設定したいだけです。
そこで、私は 2 つのアプローチを試みました。
self.view.backgroundColor = [UIColor colorWithPatternImage:backGroundimage];
B) UIImageView を作成し、そこに画像を設定します。コード:
UIImageView *backgroundImageView = [[UIImageView alloc]initWithFrame:screenBounds];
[backgroundImageView setImage:[UIImage imageNamed:backGroundImage]];
[self.view addSubview:backgroundImageView];
しかし、私はそれらの両方に問題があります:
ステップ A の問題: この方法で画像を設定すると、さまざまなサイズの画面の画像スケーリングの問題に対処する必要があります。次のコードを使用してスケーリングを行います。
UIGraphicsBeginImageContext(screenBounds.size);
[[UIImage imageNamed:backGroundImage] drawInRect:screenBounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
ステップ A のもう 1 つの問題は、画像がかなりぼやけて見えることです。同じ鋭さはありません。
ステップ B の問題点: これにより、イメージは非常にくっきりとシャープに見えます。
しかし、次のコードを使用して別のビューに切り替えると、奇妙なことに、UIImageView backgroundImageView がまだ 2 番目のビューに表示されます。ビューを切り替えるために使用するコードは次のとおりです。
[self presentViewController:secondViewController animated:YES completion:nil];
も試し[backgroundImageView removeFromSuperview]
ましたが、それでも何も解決しません。
それで、私は何を間違っていますか?また、iPhone のサイズに依存する画像を背景として設定するにはどうすればよいですか?