iPhone開発 UIButton に Retina(高解像度) 画像を表示。 ios 逆引き サンプル
iPhone ios objective-c サンプル
UIButton に Retina(高解像度) 画像を表示する方法になります。
事前に iPhone4 以上 Retina 用の画像と iPhone3GS 以下用の画像を用意します。
例えば、iPhone4 で frame 100 X 100 の画像を表示する場合、
Retina 用 100 X 100
Retina 以外用 50 X 50
の画像を用意します。
また、用意した画像のファイル名は
Retina 用 test@2x.png
Retina 以外用 test.png
と Retina 用 の場合は @2x を拡張子の前の部分のファイル名に最後に含めます。
このようなファイル名にすることで、起動時に
Retina 端末の場合は test@2x.png ファイルを、
Retina 以外の端末の場合は test.png ファイルが自動で読み込まれます。
表示する画像は xcode のフォルダへ追加(ドラックドロップなど)しておいてください。
プロジェクトフォルダにあるイメージを読み込みます。
指定するファイルは @2x でない方のファイル名を指定します。
UIImage *img = [UIImage imageNamed:@”test.png”];
ボタンのインスタンスを作成します。
UIButton *button = [[UIButton alloc] init];
ボタンに画像を設定します。
[button setBackgroundImage:img forState:UIControlStateNormal];
表示するフレームを設定します。
表示する大きさは frame でしていますので、Retina 以外の端末サイズ 50 X 50 を指定します。
button.frame = CGRectMake(10, 10, 50, 50);
ビューへ貼り付けます。
[self.view addSubview:button];
コードサンプル
//プロジェクトフォルダにあるイメージを読み込みます。 //指定するファイルは @2x でない方のファイル名を指定します。 UIImage *img = [UIImage imageNamed:@"test.png"]; //ボタンのインスタンスを作成します。 UIButton *button = [[UIButton alloc] init]; //ボタンに画像を設定します。 [button setBackgroundImage:img forState:UIControlStateNormal]; //表示するフレームを設定します。 //表示する大きさは frame でしていますので、Retina 以外の端末サイズ 50 X 50 を指定します。 button.frame = CGRectMake(10, 10, 50, 50); //ビューへ貼り付けます。 [self.view addSubview:button];