ios – Xcode 6无法为iPhone 6模拟器显示正确的图像尺寸
发布时间:2020-12-14 19:08:11 所属栏目:百科 来源:网络整理
导读:我一直在关注使用 Image.xcassets在不同设备上显示全屏图像的本教程 https://www.youtube.com/watch?v=_36Y6rDcKP0.因为可以清楚地显示placeHolders,所以创建启动项非常容易.但是,我的问题是在创建新的图像集时如下. 我在每个地方放置的图像如下: 1x bg.png
我一直在关注使用
Image.xcassets在不同设备上显示全屏图像的本教程
https://www.youtube.com/watch?v=_36Y6rDcKP0.因为可以清楚地显示placeHolders,所以创建启动项非常容易.但是,我的问题是在创建新的图像集时如下.
我在每个地方放置的图像如下: > 1x bg.png(320 x 640) 我的问题是,当我运行iPhone 6模拟器时,它会加载bg@2x.png(640 x 960)图像而不是iPhone 6的bg-568h@2x.png(640 x 1136)图像? (图像被拉伸).所有其他图像尺寸对于每个设备都是正确的.在视频教程中,iPhone 6模拟器确实加载了bg-568h@2x.png(640 x 1136).我究竟做错了什么 ?? 解决方法
经过大量的游戏,我相信这是一个错误.运行iPhone 6时,Image.xcassets应加载568h@2x.png(640 x 1136). Xcode应该将其扩展到750 X 1334.但它不会,它总是加载iPhone 4(320 x 640)图像.为了解决这个问题,我创建了两组Image.xcassets(Device Specific),如下所示:
- backGround.xcassets - 1x (320 x 640) - 2x (640 x 960) - 3x (2208 x 1242) - //(uncheck 4- Retina) - backGroundRetina.xcassets - 2x (640 x 1136) - //(only iPhone checked) 在(void)viewDidLoad { if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone ){ CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width; if( screenHeight < screenWidth ){ screenHeight = screenWidth; } if ( screenHeight > 480 && screenHeight < 736 ){ NSLog(@"RUNNING IPHONE 5 or 6"); [_backGround setImage:[UIImage imageNamed:@"backGroundRetina"]]; } else NSLog(@"THIS IS NOT IPHONE 6"); // [_backGround setImage:[UIImage imageNamed:@"backGround"]]; will be called } 我确定还有其他方法可以解决这个问题,但这对我有用,我希望它可以帮助其他人坚持同样的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |