Ios 如何为iphone 3.5英寸屏幕和4英寸屏幕编写代码

Ios 如何为iphone 3.5英寸屏幕和4英寸屏幕编写代码,ios,iphone,objective-c,Ios,Iphone,Objective C,我正在开发一个应用程序。在应用程序中,我为3.5英寸的屏幕编写了代码。我拿了一个视图控制器;在这个视图控制器中,我想显示两个图像,一个用于顶部(Imagelogo),另一个用于底部(图像构建)。在3.5英寸屏幕上,显示屏没有问题。但是在4英寸的屏幕上,有一个显示问题。这两个图像显示不正确。我不知道如何为3.5英寸和4英寸屏幕编写相同的代码。我可以使用宏吗?请给我一些想法,任何人。我是编程新手。提前谢谢 下面是我的代码 Viewcontroller.m(3.5英寸屏幕) 此图像将显示在顶部 img

我正在开发一个应用程序。在应用程序中,我为3.5英寸的屏幕编写了代码。我拿了一个视图控制器;在这个视图控制器中,我想显示两个图像,一个用于顶部(Imagelogo),另一个用于底部(图像构建)。在3.5英寸屏幕上,显示屏没有问题。但是在4英寸的屏幕上,有一个显示问题。这两个图像显示不正确。我不知道如何为3.5英寸和4英寸屏幕编写相同的代码。我可以使用宏吗?请给我一些想法,任何人。我是编程新手。提前谢谢

下面是我的代码

Viewcontroller.m(3.5英寸屏幕)

此图像将显示在顶部

imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 10, 162, 57)];
imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];
[self.view addSubview:imgLogo];
此图像将显示在底部

imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 320, 320,140 )];
imgBuilding.image=[UIImage imageNamed:@"image-02.png"];
[self.view addSubview:imgBuilding];

您可以在interface builder中的中自动调整功能的大小,或通过代码使用它

如果你的应用程序支持IOS 5及以上版本,你可以使用苹果的自动布局系统

您可以通过代码根据屏幕大小放置图像

if ([[UIScreen mainScreen] bounds].size.height == 568)
{
       //iphone 5 image 
}else
{

}

试试这样的自动重设屏幕

 UIImageView *imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 10, 162, 57)];


    imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];
    [imgLogo setAutoresizingMask:(UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin)];

    [self.view addSubview:imgLogo];

这是一个快速修复您的问题,但我建议使用自动布局

 if ([[UIScreen mainScreen] bounds].size.height == 568)
    {    
         imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 10, 162, 57)];
       imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];
       [self.view addSubview:imgLogo]; 
       imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 320, 420,140 )];
       imgBuilding.image=[UIImage imageNamed:@"image-02.png"];
       [self.view addSubview:imgBuilding];            
    }
    else
    {
       imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 10, 162, 57)];
       imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];
       [self.view addSubview:imgLogo]; 
       imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 320, 320,140 )];
       imgBuilding.image=[UIImage imageNamed:@"image-02.png"];
       [self.view addSubview:imgBuilding];     
    }
希望这对您有所帮助。

在“Viewcontroller.h”中定义float scaleY

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
   float scaleY;
}
@end
然后将scaleY值与视图的“y”位置相乘

UIImageView *imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 10*scaleY, 162, 57)];
imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];
[self.view addSubview:imgLogo];

UIImageView *imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 320*scaleY, 320, 140 )];
imgBuilding.image=[UIImage imageNamed:@"image-02.png"];
[self.view addSubview:imgBuilding];
您可以在整个代码中使用此“scaleY”值(如上所示)将其与相应视图的y位置相乘。由于iPhone系列设备的高度不同,所以我们只能改变它们的“y”位置


希望这有帮助。

plz使用自动调整大小属性。您可以使用自动布局。您可以使用自动布局根据屏幕大小调整图像。可能重复的。虽然我也使用此方法,但它会导致视图和图像垂直放大一点。图标在4英寸屏幕上不能保持完美的方形。
UIImageView *imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 10*scaleY, 162, 57)];
imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];
[self.view addSubview:imgLogo];

UIImageView *imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 320*scaleY, 320, 140 )];
imgBuilding.image=[UIImage imageNamed:@"image-02.png"];
[self.view addSubview:imgBuilding];