iOS7适配总结
来源:互联网 发布:mac注音输入法 简体字 编辑:程序博客网 时间:2024/05/16 10:38
iOS7适配总结
iOS7的适配,之前一直用偷懒的方式,就是用iOS6SDK编译程序,这样在iOS7设备也是可以跑的,但是这样用不到iOS7的新特性,此外对于新上架的App来说,苹果规定了必须用iOS7 SDK发布,所以说不能偷懒要做到真正的适配,下面总结一些方面
状态栏
在iOS7的SDK中,状态栏是默认透明色的,且UIViewController会顶到屏幕最顶端,状态栏融入了视图,如果想做一种兼容iOS6的效果,那就得把Windwo往下错20px,上面就会留下原来状态栏的区域,但是是黑色的,没有任何电池,时间信息
这是因为状态栏文字依然是黑色,看不见了,那么改变状态栏的风格就是了
此外还需要修改一下info.plist
增加View controller-based status bar appearance为NO
这样就全局的状态栏变成白色可显示的了
这里可能会出现一个问题,window整体移动了,但是window上面的view可能没有改变,这样会被状态栏吃掉20px,解决办法把最外层view的frame重新调整,这是目前的方法,觉得比较山寨
更新:
发现在[self.window makeKeyAndVisible];这句话之前和之后修改window的frame效果是不同的…..总之如果在之前修改,修改了bounds,可以正常显示,但是主ViewController是往上错了20的;如果在之后修改frame,修改frame就可以了,不写改bounds那句话,具体的试试就知道了。
iOS6变化值
如果用ib的话有这么个工具可以随时查看你的xib在iOS7和iOS6下的区别,就是Assistant,如图,勾选右下角的iOS 6.1 and Earlier
这样可以直观的对比你的xib在不同系统的样子,这里注意一下我放了一个Label进去,origin的Y是20,是这样的
可以看到iOS7里面状态栏融入了viewcontroller,所以label是顶着状态栏的(透明状态栏),在iOS6里面有点儿偏下,那么能不能让label在iOS6里面顶着状态栏呢,常规方法可以用代码判断系统版本然后设置不同的frame,但是可以通过变化值简单的调整控件在iOS6里的样子,点选label,然后如图设置
这个iOS 6/7 Deltas值设置就是设置控件在iOS6系统下基于iOS7的IB做出的变化,可以看到我设置了label的Y减了20,也就是说label在iOS6里面的Y值会比7少20,那实际情况是这样么?
成功了!同理我可不可以改一下按钮的高度变化呢?这里按钮是系统圆角,所以外形会有很大区别,便于演示大小用
下面点选Button然后把Height改为90,那么在iOS6里面会比7里面Button高了90
成功了!那么,这有什么用呢?在iOS6下,view里面放个控件如果是{0,0,x,x}的话,控件是刚好顶在状态栏下面的,但是在iOS7里的话是何状态栏重叠的,因为视图是全屏的嘛,所以说如果在iOS7里状态栏frame为{0.20.x.x}的话就可以不和状态栏重叠了,而且在iOS6里面依然紧贴在状态栏下面,就这个作用
UITabelviewCell变化
uitableview我发现里面的subview如果超出了cell范围,在iOS7里就会被切掉,但是在iOS6里就没事儿,但是打印cell的clipbounds明明是NO,解决方法是这个
事实上在iOS7之前contentView的superview就是cell,但是在iOS7里contentView的superview是UITableViewCellScrollView,这里需要注意
适配iOS7原则
经过这段时间的练习和调研,发现试图在iOS7里恢复和iOS6一样的UI是行得通的,但是是绝对不建议的,最佳实践,也是苹果官方推荐的适配方式应该是按照iOS7的UI风格设计,那么就不应该费尽心力去在iOS7的SDK回复iOS6的状态栏效果,透明就透明好了,只需要让UINavigationBar加高20px就好,一些细节可以用变化量操控
- iOS7适配总结
- iOS7适配问题总结
- iOS7适配问题总结
- iOS7适配问题总结
- iOS7适配问题总结
- IOS7 兼容适配总结
- IOS7 兼容适配总结
- IOS7 兼容适配总结
- IOS7 兼容适配总结(一)
- 关于iOS7 适配的一些总结
- IOS7适配相关问题总结
- IOS7 兼容适配总结(一)
- IOS7 兼容适配总结(一)
- ios7版本适配问题总结(一)
- ios7版本适配问题总结(二)
- iOS7 UI改变总结 & iOS7适配遇到的一些问题
- iOS7 -- iOS7的UI适配问题
- ios7屏幕适配
- 初学Java,final关键字(十六)
- php - 错误报告 error_reporting
- 关于随机数的笔记
- Game 题解
- NYOJ 100 1的个数
- iOS7适配总结
- git基础学习(二):对修改的文件进行提交 git diff 和 git status
- 一个ios工程相关的配置小问题解决介绍,gdata xml解析相关
- U盘里的文件损坏了怎么办
- Elasticsearch Java虚拟机配置详解
- 编程算法基础-3.2自底向上风格
- 如何更改MFC按钮的背景色
- vc++中,图片的解压缩的方法
- 编程趣题之字符串过滤