iOS8 SDK中部份更新

本文深入探讨了iOS8更新后UIWindow、UIPopoverController和CoreLocation定位服务的变化,包括坐标计算、气泡式弹出框视图逻辑及定位权限流程的调整。详细解读了设备朝向、Segue设计、弹窗行为和位置授权机制的更新,旨在帮助开发者适应iOS平台的最新特性。

更新一:UIWindow中设备朝向和坐标的处理方式发生变化

iOS8以前,UIWindow中的坐标计算以设备Potraite朝向计算,即便将设备横置为Landscape朝向,坐标的计算方式依然不变。
因此,在设计自定义的转场(Segue)的时候,需要根据设备朝向重新调整坐标计算。而UIView的坐标会根据设备朝向自动调整。
iOS8以后,UIWindow与UIView保持一致,不再需要单独进行处理,但这个变化会与以前的逻辑冲突。

更新二:UIPopoverController的地位发生变化

UIPopoverController提供气泡式弹出框视图,在iPad上有很不错的体验。
在iOS8中,苹果调整了- presentPopoverFromRect:inView:permittedArrowDirections:animated:方法的逻辑。
因此,在自定义Segue的情况下,使用这个方法,可能会出现view not in windows hierachy错误,使得原本可以弹出的视图无法弹出。

更新三:Core Location定位服务授权流程有变化

在iOS8以前,没有单独的授权接口可以调用,当第一次调用到locationManager中的坐标获取方法时,会弹出一个系统对话框提示用户是否授权。
iOS8以后,不再有自动提示。开发者需要首先调用CLLocationManager的类方法- authorizationStatus来判断授权状态,
进而手动调用其实例方法- requestAlwaysAuthorization或者- requestWhenInUseAuthorization来手动提示用户授权。
这里还必须要在Info.plist里面设置NSLocationUsageDescription或者NSLocationWhenInUseUsageDescription这两个key中的其中一个来设置弹出框的提示信息。
否则无法弹出提示框。之后可以通过locationManager:didChangeAuthorizationStatus:来监测用户授权的情况,分别做处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值