What's New in iOS 11
iOS 11.0
本文总结了iOS 11中推出的主要开发者相关功能,该功能在当前运行的iOS设备上运行。该文章还列出了更详细描述新功能的文档。
有关已知问题的最新新闻和信息,请参见https://developer.apple.com/ios/download上的发行说明。
有关新API的完整列表,请从API参考文档的任何页面顶部的下拉列表中选择显示API更改。
要了解Swift的新功能,请参阅Swift语言和Swift编程语言(Swift 4)。
综述
iOS 11.0中的新功能 - 支持二进制(非文本)条形码。
为AV Foundation,Core Image和SiriKit添加了API,以支持检测,解码和创建具有二进制内容的条形码。添加了CIBarcodeDescriptor,一个新的条形码描述符对象到Core Image,以提供与AV Foundation和Vision API的互操作性。
应用框架
iOS 11.0中的新功能 - 支持拖放功能。
在iOS中拖放可让用户将项目从一个位置拖动到另一个位置;在单个应用程序或不同的应用程序中。功能增加,将视图识别为拖动源和目的地。添加了可定制的预览和定制动画。有关详细信息,请参阅文档中的拖放。
iOS 11.0中新增 - 浏览本地和iCloud文档。
添加了视图控制器,用于浏览存储在本地和云中的文档。有关更多信息,请参阅UIDocumentBrowserViewController和UIDocumentBrowserTransitionController。添加了UIDocumentBrowserAction,该对象用于为文档浏览器创建自定义操作。添加了FileProvider和FileProviderUI框架,用于添加第三方存储服务。有关详细信息,请参阅将文档浏览器添加到应用程序。
改进的动态类型支持。
添加了UIFontMetrics,一个用于创建根据当前选定的文本大小进行缩放的自定义字体的对象。更新自动布局,以便在基准锚点是使用系统间距的约束的一部分时,根据字体大小动态调整间距。添加了一个属性来保存PDF资源的矢量数据,以实现平滑缩放。这可以用于显示较大版本的条形条和分段控制项,以及调整图像大小以匹配用户的文字大小。在资产目录中,为PDF选择“保留矢量数据”以启用缩放。添加了UIAccessibilityContentSizeCategoryImageAdjusting,一种用于缩放可访问性文本大小的图像的协议。
改进了动态类型的自动布局支持。
更新了NSLayoutXAxisAnchor和NSLayoutYAxisAnchor,以提供使用两个锚之间的系统间距创建约束的工厂方法。以前,创建这样的约束的唯一方法是使用Visual Format语言中的破折号( - )。为NSLayoutFormatOptions添加了一个选项,用于创建使用基线到基线间距的Visual Format语言字符串。更新UIStackView以启用系统间距和自定义间距。
更新的文本内容可与“应用程序密码”自动填充一起使用。添加了UITextContentType的用户名和密码属性。
对键盘扩展的更新。
添加了selectedText,UITextDocumentProxy的属性返回文档中当前选定的文本。添加了documentIdentifier,它是UITextDocumentProxy的一个属性,用于指定用户是否导航到新的文本小部件。添加了hasFullAccess,用于检查键盘权限的UIInputViewController的属性。添加了needsInputModeSwitchKey,UIInputViewController的属性来控制输入模式切换键的显示。在“设置”中添加新的系统权限,以便应用程序访问包括键盘扩展
改进的可用存储空间API。
为不同的使用场景添加了新的URL到URL。volumeAvailableCapacityForImportantUsageKey返回用户明确请求的操作的总可用字节数,或对应用程序正常运行至关重要。volumeAvailableCapacityForOpportunisticUsageKey返回可用于存储非必要项目的总字节数,例如预先下载的用于用户可能使用或可能不会使用的性能的内容。
图形和游戏
iOS 11.0中新增 - 支持增强现实。
添加了ARKit框架,结合了设备运动跟踪,摄像头场景捕获,高级场景处理和显示便利,简化了建立AR体验的任务。
iOS 11.0中的新功能 - 高性能图像分析。
添加了用于检测面部,条形码,文本,图像水平和矩形区域的Vision框架。与Core ML集成以在图像上运行自定义模型。跟踪视频中的对象。包括对图像注册的支持。
新的iOS 11.0 - 为Core Image编写自定义图像混合内核。
添加了CIBlendKernel,一种特殊类型的CIColorKernel来混合两个图像(由CIRenderDestination和CIImageAccumulator支持)。将init(functionName:fromMetalLibraryData :)添加到CIKernel中,用于使用Metal编写内核,以受益于现代语言功能和减少的编译时间。
iOS 11.0中的新功能 - 轻量级渲染目标。
添加了CIRenderDestination,一个创建渲染器的对象,在渲染工作后返回给调用者。功能包括为不同目的地指定渲染器的所有目标属性,包括IOSurface,CVPixelBuffer,GL纹理,金属纹理和内存。
扩展ReplayKit框架。
更新RPScreenRecorder进行屏幕捕获和后置摄像头支持。
添加了新的Core Image过滤器CITextImageGenerator,CIColorCurves,CILabDeltaE,CIBokehBlur,CIMinMaxRed和CIBicubicScaleTransform。
Metal 2
Metal 2包含Metal,Metal Shading Language和Metal Performance Shaders框架的重要补充和更新。以下项目表示更新发生的位置:
- MTL: Metal框架中的更新。
- MSL: Metal着色语言中的更新。
- MPS: Metal 性能着色器框架中的更新。
MPS: Metal 2 新 - 跨平台 Metal 性能着色器支持。
所有的Metal Performance Shaders功能都可以在iOS 11.0,tvOS 11.0和macOS 10.13中使用。
MPS:iOS 11.0新增 - 神经网络支持。
增加了对金属性能着色器框架的神经网络的支持。
添加了图表,以提供更高级别的API,以简化神经网络的创建,包括允许状态在神经网络中的节点之间传输的对象。增加卷积神经网络(CNN),以支持使用先前获得的培训数据实施和运行深入学习。增加了反复神经网络来实现图像和矩阵的推理。
iOS 11.0中的新功能 - 间接参数缓冲区。
将资源分组为间接参数缓冲区(IAB)以减少CPU开销。MSL:添加[[id(n)]]属性限定符,以识别IAB结构中的资源。MTL:添加了MTLIndirectArgumentEncoder协议将资源编码为IAB。
MTL:iOS 11.0新增 - 可编程样本。
在渲染到多采样渲染目标时配置样本的位置。更新了MTLRenderPassDescriptor类,以设置和获取渲染过程的示例位置。
MSL:iOS 11.0中的新功能 - 统一类型。
添加了统一类型来声明执行绘图或调度调用的图形或计算功能的所有线程统一的变量。
MSL:iOS 11.0新增 - 采样器阵列。
添加了数组类型来存储采样器数组。
MPS:添加了新的过滤器。
添加了图像统计信息的过滤器,例如计算图像区域的均值和方差。添加了将两个图像组合在一起的过滤器,例如元素总和和查找关键点。添加用于矩阵分解和求解的滤波器,例如使用Cholesky或LU(Lower Upper)分解的分解。
MSL:扩展功能专业化。
扩展[[color(n)]]和[[raster_order_group(index)]]属性限定符来处理函数常量。用于图形,计算或用户功能的结构的成员可以与函数常量一起使用。
MTL:扩展顶点格式。
为小型格式(如char,short和half)添加了新的MTLVertexFormat值。
向iOS添加了双源混合支持。将固定功能混合操作的两个源颜色输出到单个渲染目标。MSL:向[[color(n)]]属性限定符添加了一个新的[[index(i)]]属性限定符,以输出第二个源颜色。MTL:更新MTLBlendFactor以在第二个源颜色上运行。
应用服务
iOS 11.0新功能 - 支持机器学习模式。
添加了核心ML框架,轻松将机器学习模型集成到应用程序中。
iOS 11.0中新增 - SiriKit支持视觉代码。向Sirkit添加了视觉代码域,以支持显示交换付款和联系信息的视觉代码。
iOS 11.0中新增 - SiriKit支持笔记和待办事项列表。向SiriKit添加了列表和Notes域,以支持使用Siri添加备注,与待办事项列表进行交互,以及与提醒进行交互。
在SiriKit域中增加了意图。
将骑行取消和反馈添加到骑行预订域。增加了汇款和搜索帐户到付款域。
iOS 11.0中的新功能 - 查找设备的标题。
添加标题到CMDeviceMotion,该属性返回相对于CMAttitudeReferenceFrame的标题角。返回的值是以度为单位的标题。当参考帧为xArbitraryZVertical或xArbitraryCorrectedZVertical时,返回负值。
iOS 11.0中的新功能 - 多路径TCP。
增加了对使用多个接口(如Wi-Fi和Cellular)的支持,通过扩展URLSessionConfiguration以支持IETF RFC 6824中定义的多路径TCP传输单个数据流。有关更多信息,请参阅URLSessionConfiguration.MultipathServiceType。
iOS 11.0中新增 - DNS代理。向网络扩展框架添加了新的DNS代理应用程序扩展类型。
Apple Pay中增强的最终用户交易流程。向PassKit添加了PKPaymentError,该结构用于详细报告用户运输和付款信息中的错误以及授权错误。开发人员可以使用该信息来提供自定义的错误字符串。
更新PKPaymentAuthorizationControllerDelegate中的处理程序方法以接收PKPaymentError。更新PKPaymentRequest以使用PKContactField进行联系信息。将supportedCountries添加到PKPaymentRequest以指定事务的支持的国家/地区。
即使电子钱包中没有支持付款方式,您也可以提供付款按钮。 Apple Pay现在提供付款而不离开您的应用程序,然后返回结帐。
iOS 11.0中的新功能 - 在App Store上推广应用内购买。
开发人员可以在App Store产品页面上宣传多达20个应用内购买。客户可以在App Store上开始购买,然后被带到应用程序来完成交易。添加了paymentQueue(_:shouldAddStore:for :),SKPaymentTransactionObserver的一种新方法用于促销的应用内购买。应用程序需要支持此代理,以便在App Store上显示促销的应用内购买。
iOS 11.0中的新功能 - 实时消息。
添加了MSMessageLiveLayout,一个新的消息布局,用于显示可以显示动态内容(如游戏)的实时消息。每个实时消息都有自己的MSMessagesAppViewController,并且屏幕上可以同时存在多个活动的实时消息。
以下代码显示将消息流添加到消息流中,包括不支持实时消息的设备的备用布局。
guard let conversation = activeConversation else {
fatalError("No active conversation")
}
let alternateLayout = MSMessageTemplateLayout()
alternateLayout.image = UIImage(named: "SuperSweetGameImage")
alternateLayout.caption = "$(\(conversation.localParticipantIdentifier)) wants to play a game!"
let layout = MSMessageLiveLayout(alternateLayout: alternateLayout)
let message = MSMessage()
message.layout = layout
conversation.insert(message, completionHandler: nil)
HomeKit的增强触发器。 增强触发器的基于时间的条件。 HMSignificantTimeEvent指定日出和日落的偏移量。 HMCalendarEvent指定日期和时间。 HMDurationEvent指定一个时间间隔。
添加了HMCharacteristicThresholdRangeEvent以支持跟踪一个范围内的附件状态,例如当温度介于68和72度之间时运行自动化。
添加HMPresenceEvent以根据用户的存在或不存在来添加条件。
更新了HMEventTrigger以启用多次重复的事件。
通过实现家庭接收家庭中心状态的更新:didUpdateHomeHubState:..
更新了MapKit,以更清楚地显示开发人员数据。 添加了mutedStandard,一种强调开发人员数据的新地图显示模式。
添加属性以自定义注释在碰撞发生时的行为。开发人员使用displayPriority,collisionMode和clusteringIdentifier的组合来影响哪些注释保留在地图上。
媒体和网络
新的iOS 11.0 - 支持高效率视频编码(HEVC)。 高效率视频编码(HEVC)是视频编码的新标准,在同等水平的视觉质量下,能够提供比H.264更好的压缩效果。
使用AV基金会播放包含HEVC编码曲目的电影,并捕获和导出视频。
VideoToolbox
客户端可以对HEVC视频比特流进行编码和解码。
iOS 11.0新功能 - 支持高效图像格式(HEIF)。
高效图像格式(HEIF)是一种新的图像压缩标准,可将相同级别图像质量的当前数据压缩比加倍。
添加了照片和核心图像框架的功能,以显示,编码和导出HEIF图像。
iOS 11.0中的新功能 - 支持捕获和操作深度数据,以及增强的照片捕获。
向AV Foundation添加了对象,用于捕获和表示深度数据。有关详细信息,请参阅AVCaptureDepthDataOutput,AVDepthData和相关API。
添加了AVCapturePhoto,一个封装捕获的照片的信息并支持HEVC和HEIC编码图像的对象。
更新AVCapturePhotoOutput以提供更多信息。
iOS 11.0新功能 - 自动存储管理。
将HTTP实时流资源的自动存储管理添加到AVAssetDownloadTask。当需要空间时,系统可以自动清除过期或不必要的下载。使用优先级来影响清除策略。
iOS 11.0中新增 - AirPlay 2。
AV基础中某些音频播放界面改善了AirPlay的可靠性。要利用增加的可靠性,使用AVPlayer播放音频或新的AVSampleBufferAudioRenderer对象。 为AirPlay添加了多个扬声器支持,以支持长形音频,如音乐和播客。要将应用程序标记为呈现长格式音频,请调用AVAudioSession方法setCategory(_:mode:routeSharingPolicy:options :)并使用AVAudioSessionRouteSharingPolicyLongForm作为参数值。
FairPlay流密钥管理。
改进了AVContentKeySession的功能。使用AVContentKeySession可以独立于播放或下载媒体资源来启动内容密钥请求。符合AVContentKeyRecipient协议(如AVURLAsset)的对象可以作为收件人添加到AVContentKeySession,以获得对现有内容密钥的访问,并发起新的内容密钥请求
增加了更多的实时照片调整。
添加了一个称为效果的实时照片调整的集合,将实时照片呈现为循环,反弹或长时间曝光。与常规实时照片不同,Loop和Bounce视频将以连续的循环播放。
添加了一个playbackStyle,一个新的属性,用于标识如何向用户显示PHAsset。
系统
iOS 11.0中的新功能 - 热点配置。 添加了热点配置的网络扩展。 有关详细信息,请参阅NEHotspotConfiguration。 更新了核心蓝牙框架。
增加了对L2CAP频道的支持。
扩展会话恢复可以在蓝牙复位和设备重新启动时工作。
更新了核心蓝牙框架,以适应iOS,tvOS,watchOS和macOS,以及基于平台的标记呼叫可用性。
iOS 11.0中的新功能 - 检测NFC标签并读取包含NDEF数据的消息。
增加了核心NFC,一种用于阅读NFC数据交换格式(NDEF)的近场通信(NFC)标签和数据的新框架。
APFS现在是默认文件系统。
APFS
现在对区分大小写的文件系统有不规范化的支持。