版权:张英堂

欢迎转载,转载请注明出处。

做的项目很多,一到适配的时候头就大了,IOS6,7的适配,屏幕的适配,当然还有下一步要出4.7屏幕,也要做适配。。。。悲剧的移动端的人员。

  怎么做一个通用的适配呢?

   对于IOS6, 7要做的适配最大的就是风格的改变,当然这个就需要设计师来搞定了。然后就是原点的改变。 IOS7 的原点是从屏幕左上角开始。不论是否添加了navigation。

   而IOS6 的原点确实计算状态栏,navigation的高度,也就是20 + 44, 找到问题了,好了,开始解决,上代码!

      这是我写的两个VC的基类,一个是带navigation的,一个是不带的。

          代码很简单:这个是带navigation的,也就是高度 - 64,以及原点要从20 + 44 开始算。 (注:以下都以IOS7 为标准,向下兼容IOS6 的做法)

同理,不带navigation的,只需要 - 20 就好了。

这是最简单的适配。这时候有同学说了,我要使用ib文件怎么做呢,莫着急,先来分析一下,有什么办法。

    1.最简单的,就是做两套xib,根据版本来确定。哈哈,貌似没人愿意这么做吧。费时费力,不讨好。

    2.利用苹果自带的来使用。开始上图了。(以一个简单的登录页面讲解。)

        首先咱么先打开,看一下IB包含的属性

这时候注意一下红色区域

这里是适配的重点, 这时候点一下  view as , 包含了两个选项,一个是7.0 later, 一个是6.1later。 这两个就是分别在两个版本下的预览,为了看一下效果的,可以点一下看看,是否转化了。

有细心的同学发现了,那个auto layout 我给取消了,为什么要取消呢,这就是适配的重点。

点击我红色标示的地方,发现了吗,和你的有区别吧。那个自动排版是默认的,必须取消才能做继续的,继续咱们下一步,

看到这一块,autosizing, 这个就是为了以后的适配做准备,这里外圈,有上下左右四个,也就是离边框的距离,可以自己选择,一边要看自己的界面,如果这个view在偏上,我就会选择上,左,右而不会选择下,具体为什么,这个需要自己理解,不好说的。如果偏下的view就选择下,左,右,当然你也可以左右,只选择一个。这样就做好4.0, 3.5 屏幕的适配。

不过苹果也给好了,直接用ib文件做 版本适配。

下面就以我登陆界面的 返回 按钮来讲解。

         --- 

后边的图是右边的属性栏,这里就表明了  IOS 6/7 deltas 这就是适配了。这里的标准是 前面介绍的,在  view as 的视图,一般我都是 IOS7 ,做IOS6 的适配,也分析过,他们最大的区别就是远点的改变,那么在我这个视图中,没有navigation,所以这里,只需要给 Y坐标 - 20个 像素就好了,如果带了navigation就需要 - 64个像素了。也可以以整个页面来做这里的数值,

例如:

      --------   

这样就不用每一个空间都去更改数值了。好了,看效果,以返回键为准:

在IOS7 的情况下,是正好的,上边留下了一个状态栏,那么看咱们设置之后的效果如何

好,到此完成,达到咱们的效果了。

对于屏幕大小的适配,如果用代码的情况下,可以参照刚才步骤中的,分为上下左右。如果一个控件在偏上的位置,就从上边开始算,如果在偏下的位置,就要从下部开始计算,用屏幕的高度 - 离下边框的距离。

文章到此结束,欢迎经常参观,每周一次更新。

版权:张英堂。

< IOS > IOS适配,简单的分析解决一下的更多相关文章

  1. iOS开发——适配篇&App适配简单概括

    App适配简单概括 1:适配:适应.兼容各种不同的情况 系统适配 针对不同版本的操作系统进行适配 屏幕适配 针对不同大小的屏幕尺寸进行适配 在用户眼中 屏幕是由无数个像素组成的 像素越多,屏幕越清晰 ...

  2. 使用Analyze 和Instruments-Leaks分析解决iOS内存泄露

    版权声明:本文为博主原创文章,未经博主允许不得转载. 使用Analyze和Instruments-Leaks分析解决iOS内存泄露   实验的开发环境:Xcode 7   一.使用Product-An ...

  3. iOS 10 适配 ATS(app支持https通过App Store审核)

    iOS 10 适配 ATS 一. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据 ...

  4. iOS屏幕适配

    ## iOS屏幕适配 ### iOS屏幕适配发展史 1> iPhone4以前(没有iPad) * 不需要屏幕适配 2> iPad.iPhone5等设备出现 * 需要做横竖屏适配 * aut ...

  5. iOS:界面适配--iPhone不同机型适配 6/6plus

    iOS:界面适配--iPhone不同机型适配 6/6plus        机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片的大小,跟坐标之间有个对应关系 ...

  6. iOS 9 适配中出现的坑

    整理 iOS 9 适配中出现的坑(图文) 2015-10-22 iOS开发 库克表示:“现在在中国有150多万的开发者在iOS当中开发应用程序,我们鼓励更多的人开发应用程序,也鼓励更多的创业加入.” ...

  7. iOS常用框架源码分析

    SDWebImage NSCache 类似可变字典,线程安全,使用可变字典自定义实现缓存时需要考虑加锁和释放锁 在内存不足时NSCache会自动释放存储的对象,不需要手动干预 NSCache的key不 ...

  8. ios下最简单的正则,RegexKitLite

    ios下最简单的正则,RegexKitLite 1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中.备用地址:http://www.coco ...

  9. iOS 9 适配需要注意的问题

    iOS 9 适配需要注意的问题 1`网络适配_改用更安全的HTTPS iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协 ...

随机推荐

  1. 第14/15讲- Android资源管理

    第14/15讲 Android资源管理 Android中的资源是指非代码部分,比如图片.MP3,字符串,XML文件等.在一个android工程中,res和assets是用来保存资源文件的. res和a ...

  2. mycat实例(2)

    全局序列号 数据切分后,原有的关系数据库中的主键约束在分布式条件下将无法使用,因此需要引入外部机制保证数据唯一性标识,这种保证全局性的数据唯一标识的机制就是全局序列号(sequence). 1. 本地 ...

  3. Java中出现“错误: 编码GBK的不可映射字符”的解决方法

    我的java文件里出现中文,是这样一个文件: import java.io.*; public class Test { public static void main(String[] args) ...

  4. linux下查看文件及目录个数

    linux下查看文件及目录个数1.查看当前文件和目录总数(不包括子目录):ls -l | wc -l 2.查看当前目录下文件个数(不包括子目录):ls -l |grep "^-"| ...

  5. [HeadFirst-HTMLCSS学习笔记][第八章扩大你的词汇量]

    字体 font-family,可指定多个候选 body{ font-family:Verdana,Geneva,Arial,sans-serif; } font-size 字体大小 body{ fon ...

  6. 线程:CyclicBarrier同步工具类

    一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点.比如公司组织活动出去玩,需要在公司门口一起搭车去.每个人从家里出发去公司门口,到达的时间肯定先后不一样,所以公司的车要一直等待,等所有人 ...

  7. HDU 5618 Jam's problem again

    题意: 三维坐标,对于1个点,找出有多少个点,3个坐标都比该点小! Sample Input 1 4 10 4 7 10 6 6 8 2 5 7 3 10   Sample Output 1 1 0 ...

  8. baidu地图的一个拾取坐标系统

    http://api.map.baidu.com/lbsapi/getpoint/index.html 可以很方便的通过标记取得经纬度坐标 也可以输入经纬度坐标获得地图标记

  9. 基础命名空间:序列化 System.Runtime.Serialization

    对象通常都有状态(state),从一个对象中抽取这种状态,不论是将它存储于某地,还是通过网络传送,这种抽取动作称为“将一个对象序列化”,而反向处理过程,从一个被序列化的状态重建一个对象即为反序列化. ...

  10. 对面试题(剑指offer)产生的一些思考。

    零散的思绪.另外,推荐<剑指offer>.本文初期大部分思考都从剑指引发. 面试题不单单只是用来面试.其中有很多编程的经验可以学习.就如同我们当年的考试:) 1:鲁棒性的一个方面:边界条件 ...