UIImage屏幕大小条件奇怪的行为

时间:2014-02-18 06:17:32

标签: ios iphone objective-c ios7 uiimageview

因此,我需要区分屏幕尺寸(3.4或4英寸)设备,以便选择要显示的正确图像。

以下是我的所作所为: - 来自here

#define IS_PHONEPOD5() ([UIScreen mainScreen].bounds.size.height == 568.0f && [UIScreen mainScreen].scale == 2.f && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

if(IS_PHONEPOD5()) {
    self.tutorialImageView.image = [UIImage imageNamed:@"tutorialOverlay-568h@2x.png"];
} else {
    self.tutorialImageView.image = [UIImage imageNamed:@"tutorialOverlay.png"];
}

无论屏幕尺寸如何,图像视图始终包含较大的图像并延伸到屏幕外(在3.5“上)

我做错了什么,我尝试了其他一些事情,并且总是做同样的事情。

编辑:即使我没有选择较大的图像,它仍然是运行时屏幕上的图像:

        self.tutorialImageView.image = [UIImage imageNamed:@"tutorialOverlay.png"];

它仍然是较大的图像?

2 个答案:

答案 0 :(得分:0)

不要在图片字符串中使用@ 2x。因为每个视网膜设备都会自动处理。

使用应该保存你的图像文本,如image@2x.png但我必须只使用没有@ 2x扩展。像[UIImage imageNamed:@"image.png"];一样正确使用,这适用于3.5英寸。

如何使用4英寸屏幕使用延长-568h。例如:

image-568h@2x.png。像[UIImage imageNamed:@"image-568h.png"];

一样使用
self.tutorialImageView.image = [UIImage imageNamed:@"tutorialOverlay-568h.png"];

enter image description here 更多细节

https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/App-RelatedResources/App-RelatedResources.html

编辑:

self.navigationcontroller.navigationbar.translucent = NO;

答案 1 :(得分:0)

你检查过UIImageView的UIViewContentMode吗?通过设置UIViewContentModeScaleAspectFit并检查它是否有效来尝试它。