我一直在关注本教程https://www.youtube.com/watch?v=_36Y6rDcKP0使用Image.xcassets在不同设备上显示全屏图像。因为可以清楚地显示placeHolders,所以创建启动项非常容易。但是,我的问题是在创建新的图像集时如下。
我在每个地方放置的图片如下:
我的问题是,当我运行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)。我做错了什么?
答案 0 :(得分:1)
经过大量的游戏后,我相信这是一个错误。运行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)
In(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
}
我确定还有其他方法可以解决这个问题,但这对我有用,我希望它可以帮助其他人解决同样的问题。
答案 1 :(得分:1)
有人在另一个类似的问题中评论了添加启动屏幕文件。基本上尝试了一切后,我添加了一个启动屏幕文件,一切正常。它与您在项目文件中设置应用程序图标和启动图像的位置相同。
根据Apple,&#34;您使用启动XIB或故事板文件来指示您的应用在iPhone 6 Plus或iPhone 6上运行。&#34;我假设这是导致它开始拉动正确图像的原因,否则它不会将其视为正确的手机。
答案 2 :(得分:0)
@ 3x适用于iPhone6 +,bg-568 @ 2x适用于retina4 尝试使用bg-667 @ 2x
希望它有所帮助!
答案 3 :(得分:-1)
正在拉伸2x图像以适应增加的屏幕尺寸,如果您使用单独的3x图像作为图标和启动画面,则图像未拉伸广告正确显示
了解更多详情... iPhone 6 Plus resolution confusion: Xcode or Apple's website? for development