iOS app 适配问题总结
来源:互联网 发布:网络舆情队伍建设 编辑:程序博客网 时间:2024/06/11 21:57
1) 坐标设定问题:以屏幕左上角为原点(iOS7以前在状态栏或者导航条下)。
适配的部分实现代码如下:
判断当前IOS设备的系统版本
2) 隐藏顶部状态栏问题:IOS6隐藏状态栏时,原来状态栏的位置会出现空白部分。IOS7及其以后的版本页面视图会上调,覆盖原来状态栏的位置。
3) IOS7的边沿延展新特性。在IOS7下,控制器的视图会被导航条掩盖住。IOS6则不会出现这类问题。
取消IOS7的边沿延展特性
4) IOS7界面自动布局特性。在系统的XIB视图文件中将布局配置Use AutoLayout选项取消勾选
在iOS 8中,[UIScreen bounds] 、[UIScreen applicationFrame] 、Status bar、Keyboard这些frame都是根据设备真实方向来返回frame的,而在iOS 7中,不过是横屏还是竖屏,iOS总是返回竖屏的frame,这就对某些支持横屏的App造成了困扰,其实也只需要加两个宏或者改造一下就行了:
iOS8 和 iOS7 对 automaticallyAdjustsScrollViewInsets 属性的解释不一样
* iOS8 会把该属性的影响作用到 controller 的 view 的 subviews 上
* iOS7 仅会作用到 self.view 上
* 另外当你还需要手动调用 contentInset 的时候,iOS7 似乎就不会自动调整了。解决办法就是将 automaticallyAdjustsScrollViewInsets 设置为 NO,然后自己控制 contentInset
iOS9适配中出现的坑
1 网络无法连接。解决办法就是在项目的info.plist 文件里加上如下节点 NSAppTransportSecurity - NSAllowsArbitraryLoads
2 设置信任
这一条只和企业级应用或inhose 有关,和AppStore渠道的应用无关。
在iOS8只是弹出一个窗问你是否需要让手机信任这个应用,但是在iOS9却直接禁止,如果真的想信任需要自己去手动开启。类似于Mac系统从未知开发者处下载的dmg直接打不开,然后要到系统偏好设置的安全性与隐私手动打开。
3 字体
iOS8中,字体是Helvetica,中文的字体有点类似于“华文细黑”。只是苹果手机自带渲染,所以看上去可能比普通的华文细黑要美观。iOS9中, 中文系统字体变为了专为中国设计的“苹方” 有点类似于一种word字体“幼圆”。字体有轻微的加粗效果,并且最关键的是字体间隙变大了!
所以很多原本写死了width的label可能会出现“...”的情况。
所以为了在界面显示上不出错,就算是固定长度的文字也还是建议使用sizetofit 或者ios向上取整 ceilf() 或者提前计算
4 URL scheme
URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。
在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转
如果iOS9没做适配 会报如下错误
5 tableView
虽然现在的iOS9已经推送正式版了,但是iOS9使用时还是会感觉到App比以前更加卡顿了,tableView拖动时卡顿显示的最为明显。 并且之前遇到一个bug,原本好的项目用xcode7一编译,tableView刷新出了问题 ,[tableView reloadData]无效 有一行cell明明改变了但是刷新不出来。 感觉可能是这个方法和某种新加的特性冲突了,猜测可能是reloadData的操作被推迟到下一个RunLoop执行最终失效。
解决的方法是,注释[tableView reloadData],改用局部刷新,问题居然就解决了。
1
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
适配的部分实现代码如下:
判断当前IOS设备的系统版本
2) 隐藏顶部状态栏问题:IOS6隐藏状态栏时,原来状态栏的位置会出现空白部分。IOS7及其以后的版本页面视图会上调,覆盖原来状态栏的位置。
3) IOS7的边沿延展新特性。在IOS7下,控制器的视图会被导航条掩盖住。IOS6则不会出现这类问题。
取消IOS7的边沿延展特性
4) IOS7界面自动布局特性。在系统的XIB视图文件中将布局配置Use AutoLayout选项取消勾选
在iOS 8中,[UIScreen bounds] 、[UIScreen applicationFrame] 、Status bar、Keyboard这些frame都是根据设备真实方向来返回frame的,而在iOS 7中,不过是横屏还是竖屏,iOS总是返回竖屏的frame,这就对某些支持横屏的App造成了困扰,其实也只需要加两个宏或者改造一下就行了:
iOS8 和 iOS7 对 automaticallyAdjustsScrollViewInsets 属性的解释不一样
* iOS8 会把该属性的影响作用到 controller 的 view 的 subviews 上
* iOS7 仅会作用到 self.view 上
* 另外当你还需要手动调用 contentInset 的时候,iOS7 似乎就不会自动调整了。解决办法就是将 automaticallyAdjustsScrollViewInsets 设置为 NO,然后自己控制 contentInset
iOS9适配中出现的坑
1 网络无法连接。解决办法就是在项目的info.plist 文件里加上如下节点 NSAppTransportSecurity - NSAllowsArbitraryLoads
2 设置信任
这一条只和企业级应用或inhose 有关,和AppStore渠道的应用无关。
在iOS8只是弹出一个窗问你是否需要让手机信任这个应用,但是在iOS9却直接禁止,如果真的想信任需要自己去手动开启。类似于Mac系统从未知开发者处下载的dmg直接打不开,然后要到系统偏好设置的安全性与隐私手动打开。
3 字体
iOS8中,字体是Helvetica,中文的字体有点类似于“华文细黑”。只是苹果手机自带渲染,所以看上去可能比普通的华文细黑要美观。iOS9中, 中文系统字体变为了专为中国设计的“苹方” 有点类似于一种word字体“幼圆”。字体有轻微的加粗效果,并且最关键的是字体间隙变大了!
所以很多原本写死了width的label可能会出现“...”的情况。
所以为了在界面显示上不出错,就算是固定长度的文字也还是建议使用sizetofit 或者ios向上取整 ceilf() 或者提前计算
4 URL scheme
URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。
在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转
如果iOS9没做适配 会报如下错误
5 tableView
虽然现在的iOS9已经推送正式版了,但是iOS9使用时还是会感觉到App比以前更加卡顿了,tableView拖动时卡顿显示的最为明显。 并且之前遇到一个bug,原本好的项目用xcode7一编译,tableView刷新出了问题 ,[tableView reloadData]无效 有一行cell明明改变了但是刷新不出来。 感觉可能是这个方法和某种新加的特性冲突了,猜测可能是reloadData的操作被推迟到下一个RunLoop执行最终失效。
解决的方法是,注释[tableView reloadData],改用局部刷新,问题居然就解决了。
1
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
0 0
- iOS app 适配问题总结
- Xcode9.0打包IOS APP问题总结
- ios app版本更新流程及问题总结
- iOS In-App Purchase 内购之问题总结
- IOS APP上线苹果审核问题总结(一)
- iOS In-App Purchase 内购之 问题总结
- iOS In-App Purchase 内购之问题总结
- IOS App测试总结
- iOS 10 的适配问题总结
- IOS https 适配问题总结
- iOS app上传问题
- chihuo876 APP问题总结
- iOS App 性能优化总结
- iOS app发布相关总结?
- iOS App 性能优化总结
- iOS APP Store上线总结
- app开发总结 4 - ios总结
- iOS 企业版app发布问题
- 面试题之螺旋矩阵
- CentOS7 Docker安装操作以及基本命令
- sharepoint 页面登陆缓慢处理的一个方法!
- 【ios开发学习】常见问题积累
- eclipse中删除代码注释
- iOS app 适配问题总结
- 跨站脚本攻击(XSS)——常见网站攻击手段原理与防御
- js 对象动态属性
- 理解Cookie和Session机制
- pcl里面的RoPs特征(Rotational Projection Statistics)
- jQuery on()方法
- [算法练习]实现itoa,atoi
- NYOJ Cut the rope
- 写博客,从现在开始