What's new in iOS11?

原文链接:https://developer.apple.com/library/content/releasenotes/General/WhatsNewIniOS/Articles/iOS_11_0.html#//apple_ref/doc/uid/TP40017637-SW1

iOS 11.0

本文总结了在主流iOS设备运行的iOS11中与开发者相关的关键特性。本文同时列出了详细描述新特性的相关文档:
● 关于突破性消息和已知问题的信息,请看iOS 11 Release Notes
● 关于对APIs新增,改动和弃用的完整信息,请看 Apple Developer Documentation
● 想学习关于SafariServices 与 WebKit的新特性,请看What’s New in Safari
● 想学习关于swift的新改动,请看Swift Language 中的 What’s New in Xcode 和 The Swift Programming Language (Swift 4)

General

● iOS 11新变化——支持二维码
○ 在AV Foundation, Core Image, 和 SiriKit中新增支持扫描、解析和创建二维码的APIs
○ 在Core Image中新增一个新的条形码描述符对象——CIBarcodeDescriptor,用于提供对AV Foundation 与 the Vision APIs 的互操作性
● iOS 11新变化——MusicKit
○ MusicKit为你的APP提供了获取Apple Music音乐目录和用户列表的入口
○ 在StoreKit中进行了功能性的新增或更新以检测client tokens 和 storefront identifiers
○ 在Media Player中进行功能性的新增或更新以允许电台后台播放
○ 在Apple音乐订阅程序设置流中添加自定义消息的显示

App Frameworks

● iOS 11新变化——支持拖放。 在iOS中拖放可让用户在单个应用或不同应用中将项目从一个位置拖动到另一个位置。
○ 增加了功能来识别视图作为拖动源和拖动目的地
○ 添加了可定制的预览和定制动画
○ 详见Drag and Drop
● iOS 11新变化——浏览本地和iCloud的文件
○ 新增一个视图控制器以供浏览本地储存的和云端的文件,详见 UIDocumentBrowserViewController 和UIDocumentBrowserTransitionController
○ 新增UIDocumentBrowserAction,一个可以在文件浏览器中自定义操作的对象
○ 新增FileProvider 和 FileProviderUI两个框架,以提供第三方存储服务
○ 详见Adding a Document Browser to Your App
● 改进动态类型支持
○ 添加了UIFontMetrics,一个用于创建根据当前选定的文本大小进行缩放的自定义字体的对象
○ 更新了Auto Layout,当基准锚点是使用系统间距的约束的一部分时,基于字体大小动态调整间距
○ 添加了一个属性来保存PDF资源的矢量数据,以实现平滑缩放。 您可以使用此属性来显示较大版本的bar items 和 segmented control items,以及调整图像大小以匹配用户的文字大小。 要启用PDF中的缩放,在资产目录“属性”检查器中,选择“Preserve vector data”以获取PDF以启用缩放
○ 新增了UIAccessibilityContentSizeCategoryImageAdjusting,一种用于缩放可访问性文本大小的图像的协议
● 改进Auto Layout,支持动态类型
○ 更新了 NSLayoutXAxisAnchor 和 NSLayoutYAxisAnchor ,以提供使用两个锚点之间的系统间距创建约束的工厂方法。 以前,创建这样的约束的唯一方法是使用Visual Format Language中的破折号( - )。
○ 为 NSLayoutFormatOptions添加了一个选项,用于创建使用baseline-to-baseline间距的Visual Format Language字符串
○ 更新了UIStackView,以实现系统间距和定制间距
● 更新文本内容可以使用APP Password自动填充
○ 在UITextContentType增加username 和 password两个属性
**● 添加了 primaryEdge,这是UISplitViewController的一个属性,用于设置主视图控制器的侧面
● 添加了sectionInsetReference,一个用于UICollectionViewFlowLayout的新枚举属性,它指定用于相对部分插入的边界
● 更新了键盘扩展**
○ 添加了selectedText,一个返回文档中当前选定文本的UITextDocumentProxy 属性
○ 添加了documentIdentifier,一个UITextDocumentProxy的属性,指定用户是否导航到新的文本小部件
○ 添加了hasFullAccess,一个UIInputViewController的属性,用于检查键盘权限
○ 添加了 needsInputModeSwitchKey,一个UIInputViewController的属性,用来控制输入模式切换键的显示
○ 在“设置”中添加新的系统权限,以便应用程序访问附加的键盘扩展
● 改进了可用存储空间的API
○ 为不同的使用场景添加了新的键到URL类
■ volumeAvailableCapacityForImportantUsageKey 键返回用户明确要求操作的可用字节总量,或对应用程序的正常运行至关重要
■ volumeAvailableCapacityForOpportunisticUsageKey 键返回可用于存储非必要项目的总字节数,例如为用户可能使用或可能不会被用户使用的内容预先下载的内容

Graphics and Games

● iOS 11新变化——支持增强现实(AR)
○ 添加了 ARKit framework,结合了设备运动跟踪,摄像头场景捕获,高级场景处理和显示便利,简化了建立AR体验的任务
● iOS 11新变化——高性能图片分析
○ 添加了用于检测面部,条形码,文本,图像水平和矩形区域的 Vision framework
○ 提供了将Vision framework与Core ML整合集成以在图像上运行自定义模型的支持
○ 在视频中添加了对象跟踪
○ 增加了对图像注册的支持
● iOS 11新变化——能够为Core Image编写自定义图像混合内核
○ 添加了CIBlendKernel,一种特殊类型的 CIColorKernel来混合两个图像(由 CIRenderDestination 和 CIImageAccumulator支持)
○ 将init(functionName:fromMetalLibraryData:)添加到CIKernel中,用于使用Metal编写内核以改进语言功能和减少编译时间
● iOS 11新变化——轻量级渲染目标
○ 添加了 CIRenderDestination,一个创建渲染器的对象,在渲染工作后返回给调用者。 您可以为不同目标指定渲染器的所有目标属性,包括曲面(IOSurface),Core Video像素缓冲区(CVPixelBuffer),GL纹理,Metal纹理和内存。
● 扩展 ReplayKit framework
○ 更新 RPScreenRecorder进行屏幕捕获和后置摄像头支持
● 添加了新的Core Image过滤器CITextImageGenerator,CIColorCurves,CILabDeltaE,CIBokehBlur,CIMinMaxRed和CIBicubicScaleTransform

Metal 2(有点难理解)

Metal 2包含Metal,Metal Shading Language和Metal Performance Shaders框架的重要补充和更新。 以下项目表示更新发生的位置:
– MTL: An update in the Metal framework.
– MSL: An update in the Metal Shading Language.
– MPS: An update in the Metal Performance Shaders framework.

● MPS: New in Metal 2 - 跨平台Metal Performance Shaders支持
○ 所有Metal Performance Shaders功能均可在iOS 11.0,tvOS 11.0和macOS 10.13中使用
● MPS: New in iOS 11.0 -神经网络支持
○ 增加了对Metal Performance Shaders framework的神经网络的支持
○ 添加了图表,以提供更高级别的API,以简化neural network的创建,包括允许状态下在神经网络中的节点之间传输的对象
○ 添加 convolutional neural networks(CNN),以支持使用先前获得的训练数据实现和运行深度学习
○ 增加了用于实现图像和矩阵推理的循环神经网络
● iOS 11新变化——参数缓冲区,将资源分组到参数缓冲区(AB)中以减少CPU开销
○ MSL:添加[[id(n)]]属性限定符来标识AB结构中的资源
○ MTL:添加了MTLArgumentEncoder协议将资源编码到AB中
● MTL:iOS 11新变化——可编程样品位置。 在渲染到多采样渲染目标时配置样本的位置
○ 更新MTLRenderPassDescriptor类,以设置和获取渲染过程的样本位置
● MSL: iOS 11新变化——统一类型
○ 添加了统一类型,以声明对执行绘图或调度调用的图形或计算功能的所有线程均匀的变量
● MSL: iOS 11新变化——Array of samplers
○ 添加了数组

App Services

● iOS 11新变化——支持机器学习模型
○ 添加了Core ML framework,轻松将机器学习模型集成到应用程序中
● iOS 11新变化——SiriKit支持视觉编码
○ 向Sirkit添加了视觉代码域(Visual Codes domain),以支持显示交换付款和联系信息的视觉代码
● iOS 11新变化——SiriKit支持笔记和待办事项清单
○ 向SiriKit添加了列表和Notes域,以支持使用Siri添加备注,与待办事项列表进行交互,并与提醒进行交互
● 增加了对SiriKit域的意图
○ 增加了骑行取消和反馈到Ride Booking domain
○ 增加了转帐金额,并向 Payments domain搜索帐户
● iOS 11新变化——找到设备的标题
○ 添加到CMDeviceMotion的 heading,该属性返回相对于 CMAttitudeReferenceFrame的标题角。 返回的值是以度为单位的标题。 当参考帧为xArbitraryZVertical或xArbitraryCorrectedZVertical时,返回负值
● iOS 11新变化——多路径TCP
○ 通过扩展URLSessionConfiguration以支持IETF RFC 6824 6824中定义的Multipath TCP,增加了使用多个接口(如Wi-Fi和蜂窝)来传输单个数据流的支持。请参阅URLSessionConfiguration.MultipathServiceType
● iOS 11新变化——DNS代理
○ 向网络扩展框架添加了一个新的DNS代理应用程序扩展类型
● Apple Pay的增强的最终用户交易流程
○ 向PassKit添加了PKPaymentError,这是一个结构,用于详细报告用户运输和付款信息中的错误以及授权错误。 开发人员可以使用该信息来提供自定义的错误字符串
○ 更新PKPaymentAuthorizationControllerDelegate中的处理程序方法以接收PKPaymentError
○ 更新 PKPaymentRequest 以使用 PKContactField进行联系信息
○ 将 supportedCountries 添加到 PKPaymentRequest以指定交易的支持的国家/地区
○ 即使在电子钱包中没有支持付款方式,也增加了显示付款按钮的支持。 Apple Pay现在处理付款而不离开您的应用程序,然后返回结帐
● iOS 11新变化——在App Store上推广应用内购
○ 开发人员可以在App Store产品页面上推广最多20个应用内购。 客户可以在App Store上开始购买,然后被带到应用程序来完成交易
○ 添加了paymentQueue(_:shouldAddStore:for:),一种SKPaymentTransactionObserver 的新方法,用于促销的应用内购。 应用程序需要支持这个代理,以促进应用内购买,才能在App Store上显示
● iOS 11新变化——实时消息
○ 添加了 MSMessageLiveLayout,一个新的消息布局,用于显示可以显示动态内容的实时消息,如游戏。 每个实时消息都有自己的MSMessagesAppViewController,并且可以在屏幕上同时存在多个活动的实时消息

● HomeKit增强触发器
○ 增强触发器的基于时间的条件。 HMSignificantTimeEvent事件指定从日出和日落的偏移量。 HMCalendarEvent指定日期和时间。 HMDurationEvent指定一个时间间隔
○ 添加了HMCharacteristicThresholdRangeEvent以支持跟踪一个范围内的附件状态,例如当温度介于68和72度之间时执行动作
○ 添加了HMPresenceEvent,用于根据用户的存在或不存在来添加条件
○ 更新了 HMEventTrigger以启用多次重复的事件
**● 添加home:didUpdateHomeHubState:支持接收家庭中心状态的更新
● 更新了MapKit,以更清楚地显示开发人员数据**
○ 添加了mutedStandard,,一种强调开发人员数据的新地图显示模式
○ 添加了属性以自定义标注在发生冲突时的行为。 开发人员使用displayPriority,collisionMode和 clusteringIdentifier的组合来影响地图上保留哪些标注
● 将authorizationStatus方法添加到Core Motion框架的CMAltimiter,CMPedometer,CMMotionActivityManager和CMSensorRecorder类。 该方法用于确定应用程序是否被授权从源接收数据

Media and Web

● iOS 11新变化——支持高效率视频编码(HEVC)。 高效率视频编码(HEVC)是视频编码的新标准,在相同的视觉质量水平下,提供比H.264更好的压缩效果
○ 增加了使用AV Foundation播放包含HEVC编码音轨的电影以及捕获和导出视频的支持
○ 增加了对使用VideoToolbox客户端编码和解码HEVC视频比特流的支持
● iOS 11新变化——支持高效图像格式(HEIF)。 高效图像格式(HEIF)是一种新的图像压缩标准,可将相同级别图像质量的当前数据压缩比加倍
○ 添加了照片和核心图像框架的功能,以显示,编码和导出HEIF图像
● iOS 11新变化——支持捕获和操纵深度数据,以及增强的照片捕获
○ 向AV Foundation添加了对象,用于捕获和表示深度数据。 请参阅AVCaptureDepthDataOutput, AVDepthData,和相关API
○ 添加了 AVCapturePhoto,一个封装捕获的照片的信息并支持HEVC和HEIC编码图像的对象
○ 更新了AVCapturePhotoOutput以提供有关摄像头功能和支持的输出格式的更多信息
● iOS 11新变化——自动存储管理
○ 增加了对AVAssetDownloadTask的HTTP实时流资源的自动存储管理。 当需要空间时,系统可以自动清除过期或不需要的下载。 使用优先级来影响清除策略
● iOS 11新变化——AirPlay 2
○ AV Foundation中某些音频播放界面改善了AirPlay的可靠性。 为了利用增加的可靠性,使用AVPlayer播放音频或新的AVSampleBufferAudioRenderer对象
○ 为AirPlay添加了多个扬声器支持,用于长音频音频(如音乐和播客)。 要将应用程序标记为呈现长格式音频,请调用 AVAudioSession方法setCategory(_:mode:routeSharingPolicy:options:)并使用AVAudioSessionRouteSharingPolicyLongForm作为参数值
○ 将AVRoutePickerView添加到AVKit框架和 AVRouteDetector到AVFoundation框架,使用户可以选择多条路由可用时播放内容的路由。 使用AVRouteDetector确定启用路由检测时是否有多条路由可用。 如果有多个路由可用,请使用AVRoutePickerView为用户提供一个接口来选择路由
● 添加FairPlay流密钥管理
○ 改进了 AVContentKeySession的功能。 使用AVContentKeySession可以独立于播放或下载媒体资源来启动内容密钥请求。 符合 AVContentKeyRecipient协议(如 AVURLAsset)的对象可以作为收件人添加到AVContentKeySession,以获得对现有内容密钥的访问权限,并发起新的内容密钥请求
● 增加了更多的Live Photo调整
○ 添加了一系列实时照片调整,称为效果,将实时照片呈现为循环,反弹或长时间曝光。 与常规实时照片不同,Loop和Bounce视频将以连续的循环播放
○ 添加了一个playbackStyle,一个新属性,用于标识如何向用户显示PHAsset

System

● iOS 11新变化——热点配置
○ 添加了热点配置的网络扩展。 请参阅 NEHotspotConfiguration
● iOS 11新变化——检测NFC标签并读取包含NDEF数据的消息
○ 增加了 Core NFC,一种用于阅读NFC数据交换格式(NDEF)的近场通信(NFC)标签和数据的新框架
● 更新了Core Bluetooth framework
○ 增加了对L2CAP通道的支持
○ 扩展会话恢复可以在蓝牙复位和设备重新启动时工作
○ 更新Core Bluetooth framework中的API,以匹配iOS,tvOS,watchOS和macOS,并标记每个API的平台可用性
● APFS现在是默认文件系统
○ 为区分大小写的文件系统添加了对规范化不敏感的支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值