您的位置:首页 > 移动开发 > IOS开发

IOS8变化大全

2016-08-03 18:53 197 查看
运用扩展(Extension)

现在apple允许我们在app中添加一个新的target,用来提供一些扩展功能。比如在系统的通知中心中显示一个自己的widget,在某些应用的action中加入自己的操作,在分享按钮里加入自己的条目,更甚至于添加自定义的键盘等。

app开发时的统一

在ios8中增加了size classes来进行布局并且使用uiviewcontroller来替代了uialertview和uiactionsheet

icloud相关

在ios7中出现了icloud和coredata结合的部分的api使其稳定性和易用性大大提高,而在ios8中更进一步推出全新的cloud kit 框架但是因为其平台限制,所以使用相对少,但是如果只是在ios平台,那么使用它就比较好。

handoff及其他ios与mac的协同开发

iOS8 中的handoff机制(就是可以在mac上继续完成在ios上半途的工作)给for both ios and mac的应用带来了一个不错的契合点和卖点。

health kit 和 home kit

这是两个比较热门的领域--可穿戴设备和智能家居--所加入的框架,health kit就是一个用户体征参加的数据库,第三方应用可以向用户申请权限使来限制使用其中的数据或者向其中汇报数据。而home kit则以家庭,房间和设备的组织形式来管理和控制家中适配了home kit的智能家电。

游戏方面

加入了scene kit,但是在一段时间内还是会被cocosadx/unity所统治。但是作为ios开发者来说因为有不需要学习和熟悉新语言的优势对于转型来说还是个不错的选择。另外在a7和以上级别的gpu推出了一套新的称为metal的绘制api。

local和remote通知的变化

现在需要显示ui或者播放器播放声音的通知包括local通知也需要实现弹窗获取用户许可。

corelocation

室内定位,cl可以直接给出建筑物中的楼层定位信息,直接使用cl中的floor获取当前楼层,如果当前位置可用会返回一个非空值来显示当前的楼层,就可以更好的扩展定位功能。

苹果在ios8中修改了定位授权协议,所以以前的app可能在ios8中无法定位,比较好的方法就是在app启动的时候调用ios8的定位授权api来获取用户的授权,这样就不用在其他地方修改了,并且还需要在plist中添加两个属性NSLocationAlwaysUsageDescription,NSLocationWhenInUseDescription,内容可以自定义也可以不填。

if (OSVersion>=8.0) {

CLLocationManager *clloc = [[CLLocationManager alloc] init];

[clloc requestAlwaysAuthorization];

}


touch id

touch id api,现在开放了touch id的验证,但是实际还是比较有限,现在提供的api只能验证用户是不是手机主人还不能给出一个识别的标志或者唯一的编码,不过来做手机支付就比较好用像paypal.

相机和照片

新增加了photos.framework框架,这个框架用于与系统内置的photo应用进行交互,不仅可以代替原来的assets library作为图片和视屏的选取,还能与icloud照片流进行交互。除此之外,一个很重要的特性是还可以监听其他应用对于图片的改变,可以说整个框架非常灵活。

消息推送

原来我们只需要调用registerforremotenotificationtypes这个方法就可以了,但是在ios8中需要先配置再注册,也就是需要先执行registerUserNotificationSettings配置后再执行registerforremotenotificationtypes进行注册。

if(OSVersion>=8.0){//8.0以后使用这种方法来注册推送通知
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];

UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];
}else{
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeBadge)];
}


description属性

在ios8以前苹果允许我们为某个自定义的类添加description属性,但是在ios8以后就不可以了,只能通过重写description的git方法来实现原来的功能

UIKit框架

集合视图支持动态改变cell的尺寸,通常集合视图优先支持文本尺寸适应,但是你也可以适用于其他情况,集合视图也可以支持不同的布局。

UISearchController 替换掉UISearchDisplayController

UISplitViewController 也支持iphone了

IUNavigationController类现在有了新的选项,可以现在改变navigationbar的尺寸或者是否隐藏

UIVisualEffect类让你自定义模糊

UIPresentationController类让你分离视图控制器的内容

UIPopoverPresentationController类处理presentation内容,UIPopoverController类用它来显示pop出来的控制器。

UIAlertController类替换UIActionSheet和UIAlertView用以展示弹出层

UIPrinterPickerController类提供了一个基于控制器的视图来输出打印

可以将UIApplicationOpenSettingsURLString传给openURL方法

AVFundation框架

可以在拍照时获取信息

AVKit框架可以在ios上面使用代替media player框架

Core image框架

可以自己创建自定义图片

Core image检测器可以检测出矩形和qr码

Fundation框架

NSFileVersion类可以提供对iCloud文档以前版本的访问

NSURL 类支持存储文档的缩略图数据

NSMetadataQuery类可以搜索app打开文档的额外数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 扩展