0

在我的应用程序的首页上,我有两个图像,它们位于两个按钮的一部分上。按钮会自动重新缩放(通过取决于 iPhone 屏幕的大小。不幸的是,当图像重新缩放时,它最终会变得非常难看。

我可以根据 iphone 屏幕的大小指定两个图像的大小和位置(通过代码)吗?如果是这样,我将如何去做?

感谢您帮助新手!

2013 年 3 月 13 日更新

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

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"];

    }
}
4

1 回答 1

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

你可以为它拍两张照片。

  1. imgButton.png ->正常
  2. imgButton@2x.png ->视网膜显示


编辑代码

在 .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 文件中声明了属性,所以这里不需要再次分配。
只需简单地为它设置框架。

希望这对您有所帮助。
谢谢。

于 2013-03-13T11:03:33.953 回答