首页 > 代码库 > iOS7与之前版本差异

iOS7与之前版本差异

转自http://my.oschina.net/vimfung/blog/159767

1、UITableViewCell变化
    在之前的版本中UITableViewCell的backgroundColor是透明背景的,但是在iOS7中是默认白色背景,如果在TableView后面加入背景的应用要注意了,在创建UITableViewCell的时候把backgroundColor设置为[UIColor clearColor]

2、UIViewController的变化
    之前的版本中UIViewController中的view在显示后会自动调整为去掉导航栏的高度的。这样我们摆放控件的时候就会在导航栏的下面显示。但是在iOS7中UIViewController的wantsFullScreenLayout已经被舍弃了,不再提供此属性,所有的UIViewController创建后默认就是full Screen的,因此如果带导航栏的应用界面中的部分控件会被导航栏覆盖掉。
    要解决这中情况可以使用iOS7中UIViewController新增的属性extendedLayoutIncludesOpaqueBars和edgesForExtendedLayout来解决。其中这个属性指定了当Bar使用了不透明图片时,视图是否延伸至Bar所在区域,默认值时NO。而edgesForExtendedLayout则是表示视图是否覆盖到四周的区域,默认是UIRectEdgeAll,即上下左右四个方向都会覆盖,那么为让顶部不进行延伸到导航栏覆盖的区域,我们可以把顶部区域延伸去掉。实现代码如下:

?
1
2
self.extendedLayoutIncludesOpaqueBars = NO;
self.edgesForExtendedLayout = UIRectEdgeBottom | UIRectEdgeLeft | UIRectEdgeRight;

3、无法再获取MAC地址
在iOS7中无法再获取到MAC地址了,他会固定返回02:00:00:00:00:00。在之前版本中使用MAC地址的应用可能要做调整了。

4、隐藏StatusBar
之前如果要隐藏状态栏,只需要调用

?
1
[UIApplication sharedApplication].statusBarHidden = YES;

即可。
在iOS7中除了需要调用上述代码外,还需要在Info.plist中添加一项“View controller-based status bar appearance”,并设置其置为NO。

iOS7与之前版本差异