iOS小结(一)resolution 适配问题

来源:互联网 发布:淘宝开店考试入口 编辑:程序博客网 时间:2024/06/16 10:57

最近两个月进行的ios开发,仅就以下几点做一些总结纪录:

  1. resolution 适配问题
  2. navigation
  3. animation blocks VS CALayer animation
  4. GPUImage加速图像处理
  5. 结合Instrument分析及解决memory issues

iOS的适配问题:

要适配iphone5, iphone6, iphone6 plus等等, 用xcode打开工程的Assets,每个ImageSet都提供了1x,2x,3x图的空间,所以首先要做的是:准备好一倍图,二倍图,三倍图,将它们拖到相应的位置即可,以下图为例:


  三个resolution的图分别命名为tick.png, tick@2x.png, tick@3x.png, 其中@2x图是for Ritina屏的,如iphone5s,iphone6,@1x图是iphone5及以下, @3x图是for iphone6 plus及以上。


编程过程中如果控件是动态引入(programatically),就要注意适配问题,init with frame的时候按照 view.frame.width 和 view.frame.height 的相对大小设定,注意是按宽适配还是按高适配,选择一个为准,因为iphone4和iphone5s的宽高比就不同,如果既按宽适配,又按高适配就会出现问题。

        对于iphone6来说:

let width  = parentView.view.frame.width   // = 375let height = parentView.view.frame.height  // = 667


其他手机型号的编程中UI对应的size如下图,来自于 http://www.idev101.com/code/User_Interface/sizes.html



appIcon的适配


        
         新建一个ImageSet,准备以上resolution的icon图标们,依次拖入resolution都是72 pixels / inch.

LaunchImage替代storyboard

        现在ide新建一个工程,默认是由一个storyboard启动,我们可以像其他storyboard一样在其中加静态空间如Label,Image等,但是不可编程,不能像其他view一样给他连上一个ViewController的子类来控制它的动画,也可以直接将storyboard换成一张图,那么问题来了,可不可以去掉呢,既不用storyboard,也不用LuanchImage可以么?

        我做了实验,结果是导入过程就是黑屏,体验太差了,官方文档中指出Luanch Image的作用是这样的:“A launch file or image provides a simple placeholder image that iOS displays when your app starts up. The placeholder image gives users the impression that your app is fast and responsive because it appears instantly and is quickly replaced by the first screen of your app.” 也就是说,这个launch Image的作用就是给用户造成一种假象,好像你的程序很快,已经加载运行起来了,而实际上这个launchPage显示的时候,就是在加载程序和AppDelegate中指定的数据模型什么的,国内多数app的Luanch页都放一个大logo在中间,做广告,其实apple并不推荐这样,apple推荐的是在这一页放一个跟第一个View差不多的一张图,比如setting和weather程序的launchPage就长这样:


        搞成这样还有一个重要原因,如果我们从一个App跳转到另一个App时间超过几秒,再跳转回来的时候,系统已经释放了之前那个App的一些View,再回来需要重新加载(比如说分享到微信,分享之后又回到原程序),这时候这个LaunchImage又出现了,如果遵循apple的建议,那整个体验会比较流畅,客户基本上感受不到它在加载什么,否则LuanchImage和第一View衔接生硬的话,就会感觉怪怪的。

好,如果我们必须提供一张LaunchPage,又不想用storyboard,怎么去掉它呢?

非常简单,点击工程,在General下面找到下图App Icons and Launch Images这个选项,



         Launch Image Source改成launch with imageset,关键是下面的Launch Screen File原来是一个storyboard,这里一定要去掉,再点击上一项Launch Images Source后 main的小箭头,依次拖入相应大小的launch image切图,就ok拉,搞好是下面这样子滴,所有图resolution都是 326 pixels / inch。



参考文献

IOS Resolution Quick Reference
0 0
原创粉丝点击