IOS开发的适配问题

iOS软件的开发过程中,无论是在开发API的使用上还是在系统界面的设计布局上都离不开版本设备之间的适配问题。

只有合理的处理好软件系统在不同移动终端的适配问题才能提高用户体验度,更好的获取用户。

简单的谈谈系统在兼容IOS6和IOS7时的问题:

1)坐标设定问题:以屏幕左上角为原点(iOS7以前在状态栏或者导航条下)。

适配的部分实现代码如下:

判断当前IOS设备的系统版本

对IOS6和IOS7的设备分别做不同的坐标处理

2)隐藏顶部状态栏问题:IOS6隐藏状态栏时,原来状态栏的位置会出现空白部分。IOS7及其以后的版本页面视图会上调,覆盖原来状态栏的位置。

适配的部分实现代码如下:

进入页面时,隐藏顶部状态栏

进入页面时,适配IOS6

另外上面需要注意的是,导航条的优先级高于状态栏的。所以,如果调整视图位置的时候使用self.view.frame = frame. 这样是没有

效果的,状态栏原先的空白区域依然存在。必须对导航条当前的视图操作才有效:self.navigationController.view.frame = frame.这样

才能覆盖状态栏原先的空白区域。

退出页面时,适配IOS6

3)IOS7的边沿延展新特性。在IOS7下,控制器的视图会被导航条掩盖住。IOS6则不会出现这类问题。

适配的部分实现代码如下:

取消IOS7的边沿延展特性

4)IOS7界面自动布局特性。在系统的XIB视图文件中将布局配置UseAutoLayout选项取消勾选。

另外,在处理IOS系统版本的适配问题上,应该将一些处理视图类的特征适配抽象到处理的基类中。方便代码的重构和扩展。比如写一个继承ViewController类的子类CustomViewController,将处理IOS7边沿自扩展特性的代码点封装进去。也可以在CustomViewController其封装定制自己的导航条特性。比如定制导航条的背景图,导航条的返回按钮样式等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.尺寸适配1.原因 iOS7中所有导航栏都为半透明,导航栏(height=44)和状态栏(height=20)不...
    LZM轮回阅读 11,369评论 1 4
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,327评论 4 61
  • 每个家长都会思考这个问题:到底父母应该对成长中的小孩灌输多少自己的价值标准和道德信仰呢?说得直白一点,我...
    福在心头阅读 2,744评论 0 0
  • 早餐:两袋牛奶+3块蛋糕+1块小肉松蛋糕 午餐:酸辣粉一份+酸梅汤一杯+肉夹馍一个+一个橙子 晚餐:未进食 总结:...
    独孤紫龙阅读 962评论 0 0
  • 框架视图 关键代码 GameStart TankMovement DestoryForTime FllowTarg...
    TonyWan_AR阅读 9,043评论 2 11