UIButton自定义视网膜图像在iPad Retina Display中伸展

时间:2012-11-30 09:01:47

标签: iphone ios ipad ios5 ios6

我对iPad视网膜图像有一个问题。当我在普通ipad中执行添加时,它看起来很棒。

但是当我在iPad Retina中执行此应用程序时,UIButton自定义图像会向上伸展。

我还为视网膜模式添加了“@ 2x”图标图像的图像。

使用此代码:

UIButton *btnEye=[[UIButton alloc] initWithFrame:CGRectMake(10, 5.5, 35, 35)];
[btnEye setImage:eyeImage forState:UIControlStateNormal];
[reportToolbar addSubview:btnEye];

在普通模式下:

enter image description here

在Reitna模式下:

enter image description here

3 个答案:

答案 0 :(得分:1)

视网膜图像是否真的具有比正常情况更高的分辨率,或者它具有与普通图像相同的分辨率?

答案 1 :(得分:0)

简单来说,你应该用正常的图像替换“@ 2x”图像,看起来,图像的大小是相反的。

答案 2 :(得分:-2)

此代码不会赢得选美比赛,但你可以尝试一下!

向您的班级添加一项功能,以识别您是否有视网膜设备

- (BOOL)isRetina {
   return [self respondsToSelector:@selector(displayLinkWithTarget:selector:)] && (self.scale == 2.0);
}

当您设置eyeImage时,请执行此操作

UIImageView *eyeImage = nil;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad && [self isRetina]) {
    eyeImage = [UIImageView imageNamed:@"eye@2x.png"];
} else {
    eyeImage = [UIImageView imageNamed:@"eye.png"];
}

这样,您可以强制您的设备使用视网膜图像,如果有的话: - )。