在我的应用程序的首页上,我有两个图像,它们放在两个按钮的一部分上。按钮会自动重新缩放(取决于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 :(得分: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
您可以拍摄两张图片。
<小时/> 已修改的代码
在.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文件中声明了属性,所以不需要在这里重新分配。
只需为它设置帧。
希望这对你有所帮助。
感谢。