Ios iPad尺寸和坐标与iPhone的比例

Ios iPad尺寸和坐标与iPhone的比例,ios,objective-c,iphone,ipad,Ios,Objective C,Iphone,Ipad,我正在开发这个objective c游戏应用程序,在这个程序中,屏幕上充满了动物的图片 问题在于,该应用程序对动物的大小和x/y进行了硬编码,并与iPad的空气屏幕尺寸配合使用。我的问题是,在iPhone7 plus上,我如何缩放它,使其显示在相同的位置和大小?是否有公式来缩放尺寸和x/y坐标 我在stackoverflow上寻找答案,答案是划分维度,但当我尝试时,x/y坐标被关闭 这是密码 -(void)viewDidLoad{ [super viewDidLoad]; NSStri

我正在开发这个objective c游戏应用程序,在这个程序中,屏幕上充满了动物的图片

问题在于,该应用程序对动物的大小和x/y进行了硬编码,并与iPad的空气屏幕尺寸配合使用。我的问题是,在iPhone7 plus上,我如何缩放它,使其显示在相同的位置和大小?是否有公式来缩放尺寸和x/y坐标

我在stackoverflow上寻找答案,答案是划分维度,但当我尝试时,x/y坐标被关闭

这是密码

-(void)viewDidLoad{
  [super viewDidLoad];
   NSString *sonidoPathBell1 = [[NSBundle mainBundle] pathForResource:@"bellTransition" ofType:@"aif"];
   NSURL *sonidoUrlBell1 = [[NSURL alloc] initFileURLWithPath:sonidoPathBell1];
   AudioServicesCreateSystemSoundID((CFURLRef)sonidoUrlBell1, &sonTrans);

   btnAnimales = [[NSMutableArray alloc] initWithCapacity:0];
   for(int i = 0; i < 20; i++){
    OBShapedButton *tempbtn = [[OBShapedButton alloc] init];
    [tempbtn setTag:i+1];
    opcion = [[NSUserDefaults standardUserDefaults] integerForKey:[NSString stringWithFormat:@"bluebaymobAmazingMixAndMatchObjeto%i",i + 1]];
    if (opcion == 0) {
        [tempbtn setImage:[UIImage imageNamed:[NSString stringWithFormat:@"btnAni%i.png",i+1]] forState:UIControlStateNormal];
    }else{
        [tempbtn setImage:[UIImage imageNamed:[NSString stringWithFormat:@"btnAni%iColor.png",i+1]] forState:UIControlStateNormal];
    }
    [tempbtn addTarget:self action:@selector(startPuzzle:) forControlEvents:UIControlEventTouchUpInside];
    CGRect cuadro = CGRectMake(0, 0, 0, 0);
    switch(i+1){
        case 1:
            cuadro = CGRectMake(131, 85, 95, 120);
            //cuadro = CGRectMake(94, 48, 65, 60);
            //37, 37, 30, 60
            break;
        case 2:
            cuadro = CGRectMake(52, 246, 147, 157);
            //cuadro = CGRectMake(15, 209, 117, 97);
            break;
        case 3:
            cuadro = CGRectMake(-5, 418, 166, 158);

            break;
        case 4:
            cuadro = CGRectMake(301, 64, 156, 151);

            break;
        case 5:
            cuadro = CGRectMake(214, 213, 129, 190);
            break;
        case 6:
            cuadro = CGRectMake(165, 384, 162, 169);
            break;
        case 7:
            cuadro = CGRectMake(204, 615, 139, 153);
            break;
        case 8:
            cuadro = CGRectMake(458, 115, 109, 90);
            break;
        case 9:
            cuadro = CGRectMake(367, 222, 207, 130);
            break;
        case 10:
            cuadro = CGRectMake(361, 344, 408, 276);
            break;
        case 11:
            cuadro = CGRectMake(387, 591, 234, 173);
            break;
        case 12:
            cuadro = CGRectMake(605, 104, 92, 131);
            break;
        case 13:
            cuadro = CGRectMake(671, 220, 152, 155);
            break;
        case 14:
            cuadro = CGRectMake(760, 450, 137, 174);
            break;
        case 15:
            cuadro = CGRectMake(701, 613, 101, 161);
            break;
        case 16:
            cuadro = CGRectMake(660, 26, 132, 88);
            break;
        case 17:
            cuadro = CGRectMake(828, 36, 112, 107);
            break;
        case 18:
            cuadro = CGRectMake(820, 288, 153, 157);
            break;
        case 19:
            cuadro = CGRectMake(909, 441, 115, 162);
            break;
        case 20:
            cuadro = CGRectMake(862, 629, 151, 135);
            break;
    }

    //1920 x1080 iphone 7plus
    //2048 x 1536 ipad
    //.9375
    //cuadro.origin.x = cuadro.origin.x * .9375;
    //cuadro.origin.y = cuadro.origin.y * .703125;
    //cuadro.origin.x = cuadro.origin.x - 37;
    //cuadro.origin.y = cuadro.origin.y - 37;
    //cuadro.size.width = cuadro.size.width - 30;
    //cuadro.size.height = cuadro.size.height - 60;
    tempbtn.frame = cuadro;
    [btnAnimales addObject:tempbtn];
    [self.view addSubview:[btnAnimales objectAtIndex:i]];
    tempbtn = nil;
}
-(void)viewDidLoad{
[超级视图下载];
NSString*sonidoPathBell1=[[NSBundle mainBundle]路径资源:@“bellTransition”类型:@“aif”];
NSURL*sonidoUrlBell1=[[NSURL alloc]initFileURLWithPath:sonidoPathBell1];
AudioServicesCreateSystemSoundID((CFURLRef)SonidourBell1和sonTrans);
btnAnimales=[[NSMutableArray alloc]initWithCapacity:0];
对于(int i=0;i<20;i++){
OBShapedButton*tempbtn=[[OBShapedButton alloc]init];
[tempbtn setTag:i+1];
opcion=[[NSUserDefaults standardUserDefaults]整数工作:[NSString stringWithFormat:@“BluebaymobamazingMix和MatchObjeto%i”,i+1]];
if(opcion==0){
[tempbtn setImage:[UIImage IMAGENAME:[NSString stringWithFormat:@“btnAni%i.png”,i+1]]用于状态:UIControlStateNormal];
}否则{
[tempbtn setImage:[UIImage IMAGENAME:[NSString stringWithFormat:@“btnAni%iColor.png”,i+1]]用于状态:UIControlStateNormal];
}
[tempbtn addTarget:self action:@selector(startPuzzle:)for controlEvents:UIControlEventTouchUpInside];
CGRect cuadro=CGRectMake(0,0,0,0);
开关(i+1){
案例1:
cuadro=CGRectMake(131,85,95,120);
//cuadro=CGRectMake(94,48,65,60);
//37, 37, 30, 60
打破
案例2:
cuadro=CGRectMake(52246147157);
//cuadro=CGRectMake(15209117,97);
打破
案例3:
cuadro=CGRectMake(-5418166158);
打破
案例4:
cuadro=CGRectMake(301,64,156,151);
打破
案例5:
cuadro=CGRectMake(214213129190);
打破
案例6:
cuadro=CGRectMake(165384162169);
打破
案例7:
cuadro=CGRectMake(204615139153);
打破
案例8:
cuadro=CGRectMake(458115990);
打破
案例9:
cuadro=CGRectMake(36722207130);
打破
案例10:
cuadro=CGRectMake(361344408276);
打破
案例11:
cuadro=CGRectMake(387591234173);
打破
案例12:
cuadro=CGRectMake(60510492131);
打破
案例13:
cuadro=CGRectMake(67122152155);
打破
案例14:
cuadro=CGRectMake(760450137174);
打破
案例15:
cuadro=CGRectMake(70161310161);
打破
案例16:
cuadro=CGRectMake(660,26,132,88);
打破
案例17:
cuadro=CGRectMake(828,36,112,107);
打破
案例18:
cuadro=CGRectMake(820288153157);
打破
案例19:
cuadro=CGRectMake(909441115162);
打破
案例20:
cuadro=CGRectMake(862629151135);
打破
}
//1920 x1080 iphone 7plus
//2048 x 1536 ipad
//.9375
//cuadro.origin.x=cuadro.origin.x*.9375;
//cuadro.origin.y=cuadro.origin.y*.703125;
//cuadro.origin.x=cuadro.origin.x-37;
//cuadro.origin.y=cuadro.origin.y-37;
//cuadro.size.width=cuadro.size.width-30;
//cuadro.size.height=cuadro.size.height-60;
tempbtn.frame=cuadro;
[btnAnimales addObject:tempbtn];
[self.view addSubview:[btnAnimales objectAtIndex:i]];
tempbtn=零;
}

}

显示您的代码编辑我的答案以显示代码。这些图像的大小和位置背后似乎没有任何逻辑。所有按钮的尺寸和位置都是手动调整的。从外观上看,您似乎正在创建网格类型的设计。因此,对您来说,最好的方法是使用UICollectionView,它将考虑大小和所有方面。看看下面的答案: