转自:http://blog.sina.com.cn/s/blog_7514daca0101az3d.html
一、应用图片
标准iOS控件里的图片资源,苹果已经做了相应的升级,我们需要操心的是应用自己的图片资源。就像当初为了支持iPhone 4而制作的@2x高分辨率版本(译者:以下简称高分)图片一样,我们要为iPad应用中的图片制作对应的高分版本。我知道不少开发者很有预见性的早在iOS 5.0 SDK上就完成了这一步升级。可是我还是要强调一点,那就是之前 Michael Jurewitz (@Jury)在推上提到过的:
— 如果想让你的高分图片显示在新iPad上,你必须用Xcode 4.3.1 连同iOS 5.1 SDK编译!
二、应用图标
接下来肯定就是为应用主图标制作高分版本了,因为低分版的图标在新iPad桌面上看起来会惨不忍睹。为了支持更多的iOS设备、更高分辨率的屏幕,iOS开发者需要为自己的应用准备各种尺寸的主程序图标文件,而且这个文件列表貌似会越来越长越来越长……(译者:叹气~)。详情请参考最新的苹果开发者文档 iOS App Programming Guide 和 iOS Human Interface Guidelines 。从官方文档中,我找出来针对新iPad的Retina显示屏我们需要准备的东西:
iPad主应用图标 (144×144像素):之前用在iPad 1、2代上的是72×72 像素。现在我们需要额外的@2x版本(144×144 像素)。
iPad搜索结果图标 (100×100像素):这个图标出现在系统搜索结果中(译者注:还有在系统设置中,如果应用支持的话)。之前版本用的是50×50像素,现在@2x版本需要100×100像素。
文件命名和Info.plist文件:
根据你的应用需要支持的iOS最低版本不同,你可能需要在Info.plist文件中指定图标文件名,或者是按照苹果的规范命名不同版本的主图标文件。最悲催的情况恐怕就是,你搞的是一个即可跑在iPhone也可跑在iPad上的通用应用(universal app),并且你打算支持iOS 3.1.x甚至更早的版本(译者:其实现在iOS 4.0及以上版本的设备普及率已经很高了,完全没有必要支持古董级的版本,咱又不是Android)。因为iOS 3.2之前是不支持在Info.plist文件里面指定图标文件的,所以你得使用苹果指定的规范去命名图标文件。一个完整的列表差不多就是下面这个样子:
● Icon.png – 57×57 iPhone应用图标
● Icon@2x.png – 114×114 iPhone Retina显示屏应用图标
● Icon-72.png – 72×72 iPad应用图标
● Icon-72@2x.png - 144×144 iPad Retina显示屏应用图标
● Icon-Small.png – 29×29 iPhone 系统设置和搜索结果图标
● Icon-Small@2x.png – 58×58 iPhone Retina显示屏 系统设置和搜索结果图标
● Icon-Small-50.png – 50×50 iPad 系统设置和搜索结果图标
● Icon-Small-50@2x.png – 100×100 iPad Retina显示屏 系统设置和搜索结果图标
如果你的应用仅兼容iOS 3.2及之后的版本,那么你可以在Info.plist文件里面指定图标文件,你不用遵守上面的命名规范,当然你非要那么命名也没有问题(译者:为了便于和美工沟通和日后项目资源的管理,还是建议遵循这套规范)。在iOS 3.2中,苹果在Info.plist文件中引入了CFBundleIconFiles键,在此其中你可以直接指定应用图标的各种版本。如果你忽略了.png的后缀名,那么你也可以忽略高分版本图片的@2x部分,系统会自动匹配。
苹果在iOS 5.0中为了支持报刊杂志(Newsstand)功能,再次引入了一个新的键 CFBundleIcons,这让事情变得更加复杂起来(译者:再次叹气~)。这个键下含有子键CFBundlePrimaryIcon,里面的CFBundleIconFiles子键保存着在此之前保存在Info.plist根节点CFBundleIconFiles键里面的内容。如果你的应用仅支持iOS 5.0及之后版本,那么用一个 CFBundleIcons键就可以,否则的话你还需要同时保留CFBundleIconFiles键和相关内容。
(译者:这里原文讲述稍微有点偏差,未提到CFBundlePrimaryIcon,而且比较混乱,令人费解。其实在Xcode里面以默认方式打开Info.plist看到的会是Icon Files和Icon Files(iOS 5)两组键)
总之,为了做到向后兼容,这个环节会给开发者带来一点小混乱,相当容易犯错。所以,建议开发者针对不同的设备、屏幕组合多做测试。
三、应用商店截屏图片
苹果近期对应用提交做出了规则调整,如若是iPhone、iPod touch应用,必须提交Retina显示屏高分版本的应用屏幕截图。具体图片尺寸要求如下 (前面的尺寸是含系统状态栏情况下的截图):
- 横屏: 960×640 或 960×600
- 竖屏: 640×960 或 640×920
目前苹果尚未对iPad应用提交也做出类似要求,但是为了让你的应用截图在新iPad上看起来呼之欲出,现在是时候考虑使用高分版本截图了。对应的截图尺寸如下 (前面的尺寸是含有状态栏情况下的截图):
- 横屏: 2048×1536 或 2048×1496像素
- 竖屏: 1536×2048 或 1536×2008像素
译者注:原文评论中有人做了补充的,运行时的载入画面,针对新iPad屏幕也需要准备,文件命名和尺寸要求:
- 横屏: Default-Landscape@2x~ipad.png (2048×1496像素)
- 竖屏: Default-Portrait@2x~ipad.png (1536×2008像素)
-----------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------
ICON 设置 官网文档:http://developer.apple.com/library/ios/#qa/qa1686/_index.html
iPhone、iPad通用的设置
图片大小 (px) | 文件名 | 用途 | 重要程度 |
512x512 | iTunesArtwork | iTunes 商店中展示 在iTunes中获取iTunesArtwork图片 ①打开iTunes,点击左侧的iTunes Store,在选中的应用图标上右键 拷贝链接, 之后在浏览器中打开链接(这个链接是应用在AppStore上的介绍页面) 如:http://itunes.apple.com/cn/app/pocket-rpg/id411690524?mt=8 ②在显示的页面中,用浏览器上带的开发工具,定位到页面左上角的 175×175的应用ICON 如:http://a3.mzstatic.com/us/r1000/089/Purple/43/61/36/mzl.gvbidihl.175x175-75.jpg 之后将这个链接中的175x175改成512x512后,再打开就得到了对应的 iTunesArtwork图片了 http://a3.mzstatic.com/us/r1000/089/Purple/43/61/36/mzl.gvbidihl.512x512-75.jpg | 可以没有,推荐有 如果没有,在ituens中就不能显示图标,如图: 未知风格,是因为 Ad Hoc版本,就是测试版, 没有正式发布到App Store 上 |
57x57 | Icon.png | iPhone/iPod touch上的App Store以及Home界面 | 这个真得有 |
114x114 | Icon@2x.png | iPhone 4(高分辨率)Home 界面 [App Icons 设置中的Retina Display] | 可以没有,推荐有 |
72x72 | Icon-72.png | 兼容iPad的Home界面 [App Icons 设置中的第一个图片] | 可以没有,推荐有 |
29x29 | Icon-Small.png | Spotlight搜索以及设置界面 | 可以没有,推荐有 |
50x50 | Icon-Small-50.png | 兼容iPad的Spotlight搜索 | 如果有设置束,最好有 |
58x58 | Icon-Small@2x.png | iPhone 4(高分辨率)的Spotlight搜索和设置界面 | 如果有设置束,最好有 |
320x480 Default.png iPhone4 Launch Images
640*960 Default@2x.png iPhone4 Launch Images
768x1024 Default-Portrait~ipad.png iPad Launch Images
1024x768 Default-Landscape~ipad.png iPad Launch Images
Default-Landscape~ipad.png专为iPad的应用程序
图片大小 (px) | 文件名 | 用途 | 重要程度 |
512x512 | iTunesArtwork | iTunes 商店中展示 | 可以没有,推荐有 |
72x72 | Icon-72.png | App Store以及iPad上的Home界面 | 这个真得有 |
29x29 | Icon-Small.png | iPad上的设置界面 | 如果有设置束,最好有 |
50x50 | Icon-Small-50.png | 兼容iPad的Spotlight搜索 | 可以没有,推荐有 |
现在不提供iPhone4的必须图标Icon@2x.png,将通不过App Store的审核,所以,现在Icon@2x.png也是必须的了。
Standard display
30x30 .PNG, 24-bit with transparency (but use only 1 color). Worst case size ~350 bytes. 标准的设置 tabicon.png
Retina display
60x60 .PNG, 24-bit with transparency (but use only 1 color). Worst case size ~2000 bytes. tabicon@2x.png
参考转自:http://shy818818.blog.163.com/blog/static/93398309201157104340600/
延长Default.png显示的时间
在delegate.m加入线程延迟
-(Bool)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
[NSThread sleepForTimeInterval:10];
.............
}
应用的Default.png图片显示的时间 和 机器加载应用的速度成正比,加载越快,显示的时间越短,加载越慢,显示的时间越长,
感觉快的话,可以用上面方法延长它的显示时间
iOS设备现在有三种不同的分辨率:
iPhone 320x480,
iPhone 4 640x960,
iPad 768x1024。
以前程序的启动画面(图片)只要准备一个Default.png就可以了,但是现在变得复杂多了。
如果一个程序,既支持iPhone又支持iPad,那么它需要包含下面几个图片:
Default-Portrait.png iPad专用竖向启动画面 768x1024或者768x1004
Default-Landscape.png iPad专用横向启动画面 1024x768或者1024x748
Default-PortraitUpsideDown.png iPad专用竖向启动画面(Home按钮在屏幕上面),可省略 768x1024或者768x1004
Default-LandscapeLeft.png iPad专用横向启动画面,可省略 1024x768或者1024x748
Default-LandscapeRight.png iPad专用横向启动画面,可省略 1024x768或者1024x748
Default.png iPhone默认启动图片,320x480或者320x460
Default@2x.png iPhone4启动图片640x960或者640x920
为了在iPad上使用上述的启动画面,你还需要在info.plist中加入
key: UISupportedInterfaceOrientations。
同时,加入值
UIInterfaceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight。
iPhone上实现Default.png动画
原理:
添加一张和Default.png一样的图片,对这个图片进行动画,从而实现Default动画的渐变消失的效果。
操作:
在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中添加如下代码:
// Make this interesting.
UIImageView *splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)];
splashView.image = [UIImage imageNamed:@"Default.png"];
[self.window addSubview:splashView];
[self.window bringSubviewToFront:splashView];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView: self.window cache:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
splashView.alpha = 0.0;
splashView.frame = CGRectMake(-60, -85, 440, 635);
[UIView commitAnimations];
就ok了