我想更好地了解iPhone的分辨率等。
我有一个具有基本buttonView和logoView的应用程序。我输出了logoView的高度,它会根据屏幕尺寸自动调整高度。
对于iphone5我有318可以使用。 对于iphone4(<)我有230可以使用。
我的问题是,我该如何处理用于此视图背景的图像。我会为以下内容创建一个三个单独的图像吗? -iphone3等(230) -iphone4视网膜(230尺寸,@ 2) -iphone5视网膜(328尺寸,@ 2)
或者我只创建2x 230图像,当使用iphone5并且有更多空间可用时,我可以将图像拉伸到318吗?
答案 0 :(得分:7)
这一切都取决于你的形象:
imageView.image = [imageView.image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)];
<强>更新强>
最后一点,您可以在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"];
}
答案 1 :(得分:7)
iOS 8针对不同的屏幕有不同的大小类。它在这里解释得非常好。每个iOS开发人员都应该完成这个link:
答案 2 :(得分:3)
如果您想让它更简洁一点,您可以使用宏来考虑更长的屏幕尺寸。
#define ASSET_BY_SCREEN_HEIGHT(regular, longScreen) (([[UIScreen mainScreen] bounds].size.height <= 480.0) ? regular : longScreen)
使用示例:
- (void)viewDidLoad
{
[super viewDidLoad];
self.splashScreenImageView.image = [UIImage imageNamed:ASSET_BY_SCREEN_HEIGHT(@"Default", @"Default-568h")];
}