Aqlier/ 7月 19, 2017/ iPhone

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

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

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

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

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

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

      //画像セット
    CGPoint CGP;
    UIImage *img;   //元画像
    UIImage *img1a; //縮小後画像
    int iphone_gamen = 1;
// 画像の判定ロジックは割愛 1:5.5インチ画面、2:4インチ画面
    
    img = [UIImage imageNamed:@"gazou1.png"];//表示する画像のデータです。
    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;	//高さの倍率変更
    };
  //画像サイズを計算
    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];
    
    iv.center = CGP;
    CGP=iv.center;
    float impX = CGP.x;
    float impY = CGP.y;
    CGP = CGPointMake(impX,impY);
    
    [self.view addSubview:iv];//画面サイズに合わせた表示位置・サイズで表示