每次ios大版本的更新,都会带来一些新的东西,对开发者来说,有利有弊。 好处是,新增了很多新的属性,控件和api,开发者权限更大了,可以轻松实现更多的功能。弊端在于,可能废除了一些旧的api接口,需要做更多的适配和兼容。通过自己开发过程中的一些经验,查阅ios6 SDK以及参考网上一些文档。 总结了下面这些关于ios6系统的新特性,方便大家在后续开发过程中进行对比参考。
一 关于内存警告
ios6中废除了viewDidUnload,viewWillUnload这两个系统回调, 收到内存警告时在didReceiveMemoryWarning中进行相关的处理。
- (void)viewDidUnload
{
[superviewDidUnload];
//处理ios6以下的系统内存警告系统回调消息
}
//这里处理ios6的内存警告
- (void)didReceiveMemoryWarning
{
[superdidReceiveMemoryWarning];
floatsysVer =[[[UIDevicecurrentDevice] systemVersion] floatValue];
//ios6的特殊处理
if (sysVer>= 6.0f)
{
//保证invisible, 因为即使在当前界面也会收到系统回调
if (self.view.window == nil)
{
//.......
//做相关的释放操作
self.view = nil; //确保下次会重新加载
}
}
}
二 关于屏幕旋转
同样ios6 废除了shouldAutorotateToInterfaceOrientation这个旋转屏幕的设置接口。 必须在两个新接口中设置旋转属性:shouldAutorotate
supportedInterfaceOrientations
收到旋转事件后的处理,同样在willRotateToInterfaceOrientation,和didRotateFromInterfaceOrientation中进行。
三 UISwitch
ios6下,新增了以下几个属性,可以设置开关的颜色以及背景图
@property(nonatomic, retain) UIColor*tintColor;
@property(nonatomic, retain) UIColor*thumbTintColor;
@property(nonatomic, retain) UIImage*onImage;
@property(nonatomic, retain)UIImage *offImage;
四 UINavigationBar
ios6新增了,设置阴影图片的属性
@property(nonatomic,retain) UIImage*shadowImage;
五 UIImage
可以在ios6下设置图片的scale比例尺寸了
+ (UIImage *)imageWithData:(NSData *)data scale:(CGFloat)scale;
- (id)initWithData:(NSData *)data scale:(CGFloat)scale;
六 UIRefreshControl
之前苹果官方是没有现成的下拉刷新的控件,都是自己实现或者使用比较成熟的开源库。 这次,ios6 苹果加入了UIRefreshControl,配合UITableView直接实现下拉刷新。但是为了保证兼容性, 还是不推荐目前使用这个控件。
七UICollectionView
全新的集合控件, 应用场景有类似照片墙,瀑布流等。Github里之前已经有很多开源库实现了这个控件的功能。