我正在使用iOS 5.1开发一个应用程序,我遇到了default.png文件的一些奇怪行为.
我已将以下文件添加到我的应用程序中:
Default.png - (iPhone)
Default@2x.ping - (iPhone Retina)
Default-Portrait~ipad.png - (iPad)
Default-Portrait@2x~ipad.png - (iPad Retina)
当应用程序启动时,似乎它选择了正确的Default.png图像用于每个场合.但是在我的AppDelegate中,我有一个简单的启动画面,可以更轻松地加载应用程序并转换到应用程序,执行以下操作:
UIImageView *splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,window.frame.size.width, window.frame.size.height)];
splashView.image = [UIImage imageNamed:@"Default"];
[window addSubview:splashView];
[window bringSubviewToFront:splashView];
Run Code Online (Sandbox Code Playgroud)
但是[UIImage imageNamed:@"Default"],反过来却没有为每个设备选择正确的文件,我相信问题是-Portrait文件名的一部分.
所以作为一个快速解决方案,我这样做:
if( ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) ) {
// Force the image used by ipads
if( [[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
splashView.image = [UIImage imageNamed:@"Default-Portrait@2x~ipad"];
}
else {
splashView.image = [UIImage imageNamed:@"Default-Portrait~ipad"];
}
}
else
splashView.image = [UIImage imageNamed:@"Default"];
Run Code Online (Sandbox Code Playgroud)
这是我应该怎么做的?这看起来很有趣吗?
有关官方信息,请查看:应用程序相关资源
对于启动图像,请使用以下格式:
<basename><orientation_modifier><scale_modifier><device_modifier>.png
Run Code Online (Sandbox Code Playgroud)
看起来你最好使用:
Default.png - (iPad)
Default@2x.png - (iPad Retina)
Default~iphone.png - (iPhone)
Default@2x~iphone.png -(iPhone Retina)
Run Code Online (Sandbox Code Playgroud)
即使简单地使用,这也应该给你正确的图像:
splashView.image = [UIImage imageNamed:@"Default"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5205 次 |
| 最近记录: |