Xcode のaddSubviewで画像を表示する方法

Xcode 開発時、iOSアプリの中に画像を表示する方法をまとめました。フル画面でなく、ゲームなどの進行状況に合わせて表示するような画像になります。

画像は、以下のもので、画面サイズに合わせて表示位置、画像サイズを変更する仕様です。

フルサイズでなくサブ画面の位置づけの処理です。画像は、サンプルの画像です…。

元の画像サイズは、220×280です。

使用機種に合わせて、表示する画像の大きさ・位置を変更します。

左からiPad、5.5インチ、4インチ画面のイメージサンプルです。
画像の周りには、テキスト・ボタンなど通常のアプリと同様に設置可能です。
4インチ画面は、幅・高さの倍率を変えています。

1      //画像セット
2    CGPoint CGP;
3    UIImage *img;   //元画像
4    UIImage *img1a; //縮小後画像
5    int iphone_gamen = 1;
6// 画像の判定ロジックは割愛 1:5.5インチ画面、2:4インチ画面
7 
8<pre><code>img = [UIImage imageNamed:@&amp;quot;gazou1.png&amp;quot;];//表示する画像のデータです。
9float widthPer_1;//幅倍率用変数
10float heigthPer_1;//高さ倍率用変数
11 
12if (iphone_gamen == 1){//iPhone画面のサイズにより分岐
13    CGP = CGPointMake(154,390);     //5.5インチ画面(画像の中心点)
14    widthPer_1 = 0.9;   //幅の倍率変更
15    heigthPer_1 = 0.9;  //高さの倍率変更
16 
17}else{
18    CGP = CGPointMake(154,350);     //4インチ画面(画像の中心点)
19    widthPer_1 = 0.75;  //幅の倍率変更
20    heigthPer_1 = 0.6;  //高さの倍率変更
21};
22 
23if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { //Ipad
24    CGP = CGPointMake(360,400);//Ipad画面(画像の中心点)
25    widthPer_1 = 1.6;   //幅の倍率変更
26    heigthPer_1 = 1.6;  //高さの倍率変更
27};
28</code></pre>
29 
30  //画像サイズを計算
31    CGSize sz = CGSizeMake(img.size.width *widthPer_1,
32                           img.size.height *heigthPer_1);
33    UIGraphicsBeginImageContext(sz);
34    [img drawInRect:CGRectMake(0,0,sz.width,sz.height)];
35    img1a = UIGraphicsGetImageFromCurrentImageContext();
36    UIGraphicsEndImageContext();
37    UIImageView *iv = [[UIImageView alloc] initWithImage:img1a];
38 
39<pre><code>iv.center = CGP;
40CGP=iv.center;
41float impX = CGP.x;
42float impY = CGP.y;
43CGP = CGPointMake(impX,impY);
44 
45[self.view addSubview:iv];//画面サイズに合わせた表示位置・サイズで表示
46</code></pre>
Verified by MonsterInsights