处理背景图像的不同iphone屏幕尺寸/分辨率

Stu*_*rtM 2 uiimage screen-size ios ios5 iphone-5

我想更好地了解iPhone的分辨率等.

我有一个具有基本buttonView和logoView的应用程序.我输出了logoView的高度,它会根据屏幕尺寸自动调整高度.

对于iphone5,我有318可以使用.对于iphone4(<)我有230可以使用.

我的问题是,我该如何处理用于此视图背景的图像.我会为以下内容创建一个三个单独的图像吗?-iphone3等(230)-iphone4视网膜(230尺寸,@ 2)-iphone5视网膜(328尺寸,@ 2)

或者我只创建2x 230图像,当使用iphone5并且有更多空间可用时,我可以将图像拉伸到318吗?

Eca*_*ion 7

这一切都取决于你的形象:

  • 如果您的图像可以拉伸,UIImageView将完成所有工作.
  • 如果只有一部分图像应该被拉伸,你应该使用:
    • imageView.image = [imageView.image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)];
  • 如果您的图像无法拉伸,则应为手机执行不同的图像并在运行时更改它们.

UPDATE

最后一点,你可以在你的viewDidLoad方法中做这样的事情:

BOOL isIPhone = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone;
BOOL isIPhone5 = isIPhone && ([[UIScreen mainScreen] bounds].size.height > 480.0);
if (isIPhone5) {
   imageView.image = [UIImage imageNamed:@"iphone4image.png"];
} else {
    imageView.image = [UIImage imageNamed:@"iphone5image.png"];
}
Run Code Online (Sandbox Code Playgroud)


Saa*_*aad 7

iOS 8针对不同的屏幕具有不同的大小类.这里解释得非常好.每个iOS开发者都应该通过以下链接: