如何根据iPhone屏幕的大小更改图像?请帮助我

时间:2013-03-12 21:14:42

标签: xcode uiimageview size screen

在我的应用程序的首页上,我有两个图像,它们放在两个按钮的一部分上。按钮会自动重新缩放(取决于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"];

    }
}

1 个答案:

答案 0 :(得分:3)

你可以采取两种不同的想法和UIImage在透明按钮后面查看,并根据屏幕尺寸设置尺寸。

获取屏幕尺寸的代码:

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:@"...@2x.png"];
} //iPhone-5

您可以拍摄两张图片。

  1. imgButton.png - >的正常
  2. imgButton@2x.png - > 视网膜显示
  3. <小时/> 已修改的代码

    在.h文件中,

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

    在。 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:@"Img_Circle@2x.png"] forState:UIControlStateNormal];
        }
    }
    

    因为我们已经在.h文件中声明了属性,所以不需要在这里重新分配。
    只需为它设置帧。

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