Xcode UIViewに背景画像を設定する2つの方法
UIViewの背景として画像を使用する際に、iPhone/iPadの画面サイズに合わせて画像を拡大・縮小するパターンと、画像のサイズをそのまま活かすパターンの2種類のコードの書き方があったのでメモ。
photo credit: visualpanic via photopin cc
サマリー
1.iPhone/iPadの画面サイズに合わせて画像を拡大・縮小する書き方
2.画像のサイズをそのまま活かす書き方
3.まとめ
1.iPhone/iPadの画面サイズに合わせて画像を拡大・縮小する書き方
例えば以下の様なの素材画像Sample001.png(860*1000)があるとする。(わかりやすく空の画像を使用)
iPhone/iPadの画面サイズに合わせて画像を拡大・縮小するようにするには、その画像ファイルをプロジェクトに追加した上で下記のように書く。
//iPhone/iPadの画面サイズに合わせて画像を拡大・縮小する UIGraphicsBeginImageContext(self.view.frame.size); [[UIImage imageNamed:@"Sample001.png"] drawInRect:self.view.bounds]; UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); self.view.backgroundColor = [UIColor colorWithPatternImage:backgroundImage];
するとこのように画面サイズに合わせて拡大・縮小される。(下図はiPhone6シミュレータ)
2.画像のサイズをそのまま活かす書き方
一方、下記のように書くと、画面サイズは無視され画像サイズがそのまま活かされる。
//画像のサイズをそのまま活かす UIImage *backgroundImage=[UIImage imageNamed:@"Sample001.png"]; self.view.backgroundColor=[UIColor colorWithPatternImage:backgroundImage];
結果、下図のようになる。
3.まとめ
個人的に試してはみたものの、上記のどちらの方法も自分のプロダクトに使用する機会はないだろう。背景画像を使う場合は、存在するiPhoneサイズ分の画像を用意し、実機の画面サイズによって条件分岐させるのが今のところ賢明のような気がする。
以上
あわせて読みたい
Xcodeでオブジェクトの上下配置を前面移動/背面移動する3つの方法 - TechNoteXcodeで、エクセルやパワポみたいにオブジェクトを「前面に移動」「背面に移動」するにはどうしたらいいか?3通りのやり方があったのでメモを残す。photo cr...
Xcodeで角丸設定cornerRadiusがきかない場合の対応方法 - TechNotephoto credit:camflanviaphotopinccvar show_width = document.documentElement.clien...
Xcode iOSシミュレータで enable to run app in Simulator エラー - TechNotephoto credit:Sean MacEnteeviaphotopinccサマリー1.現象2.対応方法3.リセットはこんなときも役に立ったvar show_...
[asin:B00NUDELPY:detail]