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

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

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

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

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

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

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

      //画像セット
    CGPoint CGP;
    UIImage *img;   //元画像
    UIImage *img1a; //縮小後画像
    int iphone_gamen = 1;
// 画像の判定ロジックは割愛 1:5.5インチ画面、2:4インチ画面

<pre><code>img = [UIImage imageNamed:@&amp;quot;gazou1.png&amp;quot;];//表示する画像のデータです。
float widthPer_1;//幅倍率用変数
float heigthPer_1;//高さ倍率用変数

if (iphone_gamen == 1){//iPhone画面のサイズにより分岐
    CGP = CGPointMake(154,390);     //5.5インチ画面(画像の中心点)
    widthPer_1 = 0.9;   //幅の倍率変更
    heigthPer_1 = 0.9;  //高さの倍率変更

}else{
    CGP = CGPointMake(154,350);     //4インチ画面(画像の中心点)
    widthPer_1 = 0.75;  //幅の倍率変更
    heigthPer_1 = 0.6;  //高さの倍率変更
};

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { //Ipad
    CGP = CGPointMake(360,400);//Ipad画面(画像の中心点)
    widthPer_1 = 1.6;   //幅の倍率変更
    heigthPer_1 = 1.6;  //高さの倍率変更
};
</code></pre>

  //画像サイズを計算
    CGSize sz = CGSizeMake(img.size.width *widthPer_1,
                           img.size.height *heigthPer_1);
    UIGraphicsBeginImageContext(sz);
    [img drawInRect:CGRectMake(0,0,sz.width,sz.height)];
    img1a = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageView *iv = [[UIImageView alloc] initWithImage:img1a];

<pre><code>iv.center = CGP;
CGP=iv.center;
float impX = CGP.x;
float impY = CGP.y;
CGP = CGPointMake(impX,impY);

[self.view addSubview:iv];//画面サイズに合わせた表示位置・サイズで表示
</code></pre>

上部へスクロール
Verified by MonsterInsights