之前做的项目支持的最低版本为IOS6.0,所以整理一些IOS6的适配问题(IOS6和IOS7)之间的区别.
IOS6和IOS7的坐标:
IOS6视图View 的坐标是从导航栏(高度 44)下面开始计算的,没有导航栏的坐标是从状态栏下面开始计算坐标.
IOS7视图View 的坐标是从状态栏(高度 20)下面开始计算.没有导航栏的情况下坐标是从左上角开始计算的. IOS7 中苹果引入了一个新的属性 setEdgesForExtendedLayout, 它的默认值:UIRectEdgeAll,如果容器是navigationController, 默认的布局是从导航栏的顶部开始的也就是状态栏的底部, 所以所有的UI元素会往上移动 44pt.
IOS7 中如果希望视图是从导航栏的下面开始的解决办法如下:
self.edgesForExtendedLayout = UIRectEdgeNone;
这样就可以达到和IOS6 一样的效果.
2.IOS6 比如:UILabel的background的背景颜色默认是白色
IOS7 下面UILabel的背景颜色是:clearColor 所以为了在IOS6和IOS7都能达到完美的效果都 设置为:clearColor.
3.IOS6中模态出的ViewController,默认是全屏的,在IOS7系统中药获得相同的效果,可以这样设置:
- (BOOL)prefersStatusBarHidden
{
return YES;
}