我正在开发一款应用。在应用程序中,我为ios7和ios6编写了一个3.5英寸屏幕和4英寸屏幕的代码。我拿了一个视图控制器;在这个视图控制器中,我想显示两个图像,一个用于顶部,另一个用于底部。在ios7 3.5英寸屏幕和4英寸屏幕上,显示屏没有问题。但是在4英寸屏幕和3.5英寸屏幕的ios6屏幕上,存在显示问题。这两个图像无法正确显示。我不知道如何为4英寸和以上的ios6和ios7编写相同的代码。 3.5英寸屏幕。任何人都请给我一些想法。我是编程新手。提前谢谢。
以下是我的代码。
Viewcontroller.m(适用于ios7和ios6的3.5英寸和4英寸屏幕)。
if ([[UIScreen mainScreen] bounds].size.height == 568)
{
imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 65, 162, 57)];
imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];
[self.view addSubview:imgLogo];
imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 415, 300, 153 )];
imgBuilding.image=[UIImage imageNamed:@"image-02.png"];
imgBuilding.alpha=0.4;
[self.view addSubview:imgBuilding];
}
else
{
imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 70, 162, 57)];
imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];
[self.view addSubview:imgLogo];
imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 345, 320,140 )];
imgBuilding.image=[UIImage imageNamed:@"image-02.png"];
imgBuilding.alpha=0.4;
[self.view addSubview:imgBuilding];
}
答案 0 :(得分:4)
您必须检查操作系统是否是IOS 7或更早版本,具体取决于您是否设置了imageView。
UIImageView *imgLogo;
UIImageView *imgBuilding;
if ([[UIScreen mainScreen] bounds].size.height == 568)
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 65, 162, 57)];
imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 415, 300, 153 )];
}
else
{
imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 45, 162, 57)];
imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 395, 300, 153 )];
}
imgLogo.image=[UIImage imageNamed:@"icon.png"];
[self.view addSubview:imgLogo];
imgBuilding.image=[UIImage imageNamed:@"icon.png"];
imgBuilding.alpha=0.4;
[self.view addSubview:imgBuilding];
}
else
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 70, 162, 57)];
imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 345, 320,140 )];
}
else
{
imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 50, 162, 57)];
imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 325, 320,140 )];
}
imgLogo.image=[UIImage imageNamed:@"icon.png"];
[self.view addSubview:imgLogo];
imgBuilding.image=[UIImage imageNamed:@"icon.png"];
imgBuilding.alpha=0.4;
[self.view addSubview:imgBuilding];
}
希望这会对你有所帮助。
答案 1 :(得分:2)
您可以通过autoResizing
又名“ Spring and Struts ”或使用最新的“ Autolayout ”功能执行此操作。
无论哪种方式都允许您维护单个xib文件,而subViews
的定位和大小保持不变(取决于您设置的方式)
可以通过xib / storyboard以及编程方式设置它们。
Springs和Struts 是之前的方法,但它仍然可用:
subView
链接:
Autolayout 要求您对约束的概念感到满意 这是一个更多的努力,但嘿,如果苹果说它更好,它肯定是。
链接“
注意:您不能同时使用它们。如果要使用弹簧和放大器,则必须在视图上禁用 Autolayout 功能。支柱强> 的