2013-03-12 70 views
0

在我的应用程序的首页,我有两个图像,它们放置在两个按钮的一部分上。这些按钮会自动缩放(通过取决于iPhone屏幕的大小)。不幸的是,当图像重新缩放后,它会变得非常难看。如何根据iphone屏幕的大小更改图像?请帮助我

我可以决定两幅图像的大小和位置(通过代码),这取决于iPhone屏幕的尺寸是多少?如果是的话我怎么会去这样做呢?

感谢您的帮助新手了!

更新13MAR13

这是我尝试过的代码。它不会导致错误,但页面上不会出现图像!

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    CGSize result = [[UIScreen mainScreen] bounds].size; 
    if(result.height == 480) 
    { 
     UIImageView *myImageView = [[UIImageView alloc]initWithFrame: CGRectMake(220, 2.5, 95, 75)]; 
     myImageView.image = [UIImage imageNamed:@"BFS.png"]; 
     UIImageView *myImageViewtwo = [[UIImageView alloc]initWithFrame: CGRectMake(300, 100, 95, 75)]; 
     myImageViewtwo.image = [UIImage imageNamed:@"RMS.png"]; 


    } 
    if(result.height == 568) 
    { 
     UIImageView *myImageView = [[UIImageView alloc]initWithFrame: CGRectMake(100, 400, 95, 75)]; 
     myImageView.image = [UIImage imageNamed:@"BFS.png"]; 
     UIImageView *myImageViewtwo = [[UIImageView alloc]initWithFrame: CGRectMake(100, 300, 95, 75)]; 
     myImageViewtwo.image = [UIImage imageNamed:@"RMS.png"]; 

    } 
} 
+0

你读过了吗? http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html – tuffkid 2013-03-12 21:19:33

+0

如果您需要根据是iPhone 4还是iPhone 5来更改背景图片,检查出http://stackoverflow.com/questions/12446990/how-to-detect-iphone-5-widescreen-devices – Niro 2013-03-12 21:24:21

回答

3

您可以在透明按钮后面放置2个不同的图像& UIImageViews并根据屏幕大小设置它们的大小。为获取屏幕尺寸

代码:

int h = [[UIScreen mainScreen] bounds].size.height; 

然后,检查

if([[UIScreen mainScreen] bounds].size.height == 480) { 

    imgVw1.frame = CGRectMake(x, y, w, h); 
    imgVw1.image = [UIImage imagenamed:@"....png"]; 
} //iPhone-4 

if([[UIScreen mainScreen] bounds].size.height == 568) { 

    imgVw1.frame = CGRectMake(x, y, w, h); 
    imgVw1.image = [UIImage imagenamed:@"[email protected]"]; 
} //iPhone-5 

您可以采取两种图像吧。

  1. imgButton.png - >普通
  2. [email protected] - >视网膜显示


被修改代码

在。 h fil e,

@property(nonatomic, retain) IBOutlet UIButton *btn; 

In。 m文件,

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    CGSize result = [[UIScreen mainScreen] bounds].size; 

    if(result.height == 480) 
    { 
     [btn setFrame:CGRectMake(75, 20, 175, 100)]; 
     [btn setImage:[UIImage imageNamed:@"Img_Circle.png"] forState:UIControlStateNormal]; 
    } 
    if(result.height == 568) 
    { 
     [btn setFrame:CGRectMake(65, 60, 200, 120)]; 
     [btn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal]; 
    } 
} 

因为我们已经在.h文件中声明了属性,所以在这里不需要再次进行分配。
只需简单地为它设置框架。

希望这对你有帮助。
谢谢。

+0

亲爱的imanan,谢谢你的回答!我实现了你的代码,但它创建了一些错误 - imgVw1(使用未声明的标识符)。我敢肯定,这对我来说是一个愚蠢的疏忽 - 你能帮我多一点吗? 我还用我之前尝试过的一些代码更新了我的原始问题。它不会导致错误,但不会出现图片!只是为了我未来的参考,你能告诉我它有什么问题吗? – 2013-03-13 21:08:31

+0

检查我的编辑代码。希望它能帮助你。 Thnaks – 2013-03-14 04:20:38

相关问题