在iOS 9中,新iPhone将第三维度添加到了用户界面。

  • 用户现在可以用力摁下主屏按钮来快速调出应用提供的功能菜单。

  • 在应用中,用户现在可以用力摁下视图以查看更多内容的预览并且快速访问一些功能。

想查阅示例代码的话,可以下载下面的Xcode工程:

在你开始使用前,请阅读 iOS Human Interface Guidelines 中 3D Touch 一节

主屏幕快速选项

用户早已习惯了点击一个应用按钮来打开它,或者长按任何应用来编辑主屏。现在,通过按压iPhone 6s或者iPhone 6s Plus上的应用icon,用户可获得一系列的 快捷选项。用户选择一个快捷选项后,将会启动或者加载应用,并且应用的 delegate 对象会接收快速选项的消息。

最棒的快速选项可预料并加速用户与应用的交互。iOS 9 SDK提供了定义静态或者动态快速选项的API,不过仅适用于使用最新iPhone机型的用户。

两种快速选项最多可以显示两行文本和一个可选的图标。

Peek和Pop
现在你可以授权应用的视图控制器来响应用户不同的按压力量。随着用户按压力量的增加,交互会出现三个阶段:

1. 暗示内容预览是可使用的

2. 展示预览(peek),和快捷选项菜单(peek quick actions)

3. 可选的跳转到预览中的视图(pop)

当你使用 peek 和 pop 时,系统通过压力决定从哪个阶段过度至下一个。用户可以在设置>通用>辅助功能>3D Touch中进行修改。

暗示peek是可使用的

轻按后,周围内容会变得模糊,这告诉用户预览更多内容( peek )是可以使用的。

Peek
轻按,屏幕视图就会过渡到 peek,一个你设置的用来展示更多内容的视图-就像Mail app做的一样。如果用户这时结束了触碰,peek就会消失并且应用回到交互开始之前的状态。

或者这个时候,用户可以在peek界面上更用力按下来跳转到使用peek呈现的视图,这个过渡动画会使用系统提供的pop过渡。pop出来的视图会填满你应用的根视图并显示一个返航按钮可以回到交互开始的地方。(图中没有显示最后展示pop视图的阶段)

Peek快速选项
如果用户一直保持触摸,可以向上滑动Peek视图,系统会展示出你预先设置和peek关联的peek快速选项。
每一项peek快速选项都是你应用中的深度链接。当peek快速选项出现后,用户可以停止触摸而且peek会停留在屏幕中。用户可点击一个快速选项,唤出相关链接。

你同样也可以在网页视图中开启peek和pop,请参看 Web View Peek and Pop

压力属性

在iOS 9中,UITouch类新增两个全新的属性以支持你在应用中自定义3D Touch: force 和 maximumPossibleForce 。这是第一次应用在iOS设备上,这些属性可以让你侦测并响应APP接收的IEvent对象中的触摸压力。

触控压力感应有很大的动态范围,对于你的应用来说它是个浮点值。

3D Touch的辅助功能和人机界面指

为了确保你的用户能够完整使用你app的功能,请根据3D Touch是否可用来分别规划你的代码。请参看 Checking for 3D Touch Availability

注意:3D Touch仅适用于支持3D Touch的设备上。在iOS 9中,默认3D Touch可以使用。用户可通过Settings > General > Accessibility > 3D Touch关闭该功能。

当3D Touch可用时,尽可能利用它的能力。当它不能使用时候,提供可供替代的方案比如触摸和长按。

3D Touch支持VoiceOver,想了解关于VoiceOver的内容,请查阅 Accessibility Programming Guide for iOS

想获得更多关于3D Touch的重要指南,请查阅 iOS Human Interface Guidelines 中的 3D Touch 一节。

开发环境

Xcode7支持3D Touch开发。所有Xcode的调试功能对3D Touch的新功能都是可使用的。

注意下列事项:

  • 在Xcode 7.0中,你必须在真机上调试来开发3D Touch。Xcode 7.0的模拟器不支持3D Touch。

  • 在Xcode 7.0中,你必须通过代码实现peek和pop视图控制器。Xcode7.0中的Interface Builder不提供图形支持以设置3D Touch的视图控制器转场。

请在3D Touch可使用和不可用两种情况下都测试你的应用,保证所有用户都能使用全部的功能。在一台支持3D Touch的设备上,你可以在设置>通用>辅助功能>3D Touch中关闭3D Touch。


3D Touch APIs

iOS 9提供了如下3D Touch APIs:

  • Home Screen quick action API,使你可以给应用图标添加快速选项,从而让应用预料和加速其与APP的交互。

  • UIKit peek and pop API,可让你在应用中为用户提供快速访问更多内容的功能,而无需离开当前上下文环境。使用peek quick actions的API提供的按压功能来替换你应用的触摸长按操作。

  • Web view peek and pop API,让你使用系统提供的HTML链接预览功能。

  • UITouch force properties,让你在应用增加自定义的基于压力的用户交互。

不管你使用以上哪些APIs,你的应用必须在运行时检测3D Touch的可用性。

检测3D Touch的可用性

为了在运行时检测设别是否支持3D Touch,读取那些拥有环境特征(a trait environment,见 UITraitEnvironment]Protocol Reference)的对象的特征集合(trait collection)的 forceTouchCapability 属性值。由于用户在应用运行时可以关闭3D Touch,所以在你实现的 traitCollectionDidChange: 代理方法中把读取这个属性的值作为其一部分。

为了确保你的用户能够完整使用你app的功能,请根据3D Touch是否可用来分别规划你的代码。当3D Touch可用时,尽可能利用它的功能。当不能使用时,提供可供替代的方案,比如由UILongPressGestureRecognizer类实现的触摸和长按。

请参阅 iOS Human Interface Guidelines 来提高你对提升应用交互的理解,保证为那些使用3D Touch设备的用户带来便利的同时,也不会怠慢其他用户。

主屏快速选项

iOS 9支持主屏静态和动态快速选项。

在iOS 9中,一个应用最多能展示四个主屏快速选项。在这个限制下,系统首先展示静态快速选项,以plist菜单中的第一个为首。如果你的静态选项不够四个,并且你也定义了动态快速选项,那么会展示一个或多个动态快速选项。

两种快速选项都可以显示最多两行文本和一个可选的图标。系统会格式化文本,排列包装它,并且适当的添加省略号。

主屏快速选项支持VoiceOver。

有关实现主屏快速选项的详细内容,查阅以下资料:

UIKit中的Peek 和 Pop

iOS 9让你可以通过配置视图控制器来提供peek和pop。

为了在3D Touch设备上支持peek和pop,iOS 9 SDK包括:

  • 在UIViewController类中增加了一系列用来注册和注销一个参与3D Touch的视图控制器的新方法。

  • 为了支持3D Touch的新视图控制器协议。

你可以有选择的配置一个包括一系列peek快速选项的预览视图控制器。用户可以通过在peek界面上滑来使用peek快速选项.

为了支持peek快速选项,iOS 9 SDK包括了:

有关实现peek和pop和实现peek快速选项的更多资料,查阅以下资料:

Web View的Peek和Pop

在web视图中,你可以对超链接和侦测到的数据使用全新的 allowsLinkPreview 属性来开启peek和pop。在iOS9中,这个属性在更被推荐使用的WKWebView类(属于WebKit framework)和较老的UIWebVIew类(属于UIKit framework)中都是可以使用的。

Peek和Pop会通过Safari Services framewrok中的SFSafariViewController类自动侦测链接和数据

UITouch对象中的压力属性

在iOS 9中,UITouch类获得了两个全新的属性帮助你在应用中自定义3D Touch: force 和maximumPossibleForce。

这些属性可以让你侦测并响应APP接收的IEvent对象中的触摸压力。
在iPhone上,触控压力感应有很大的动态范围,对于你的应用来说它是个浮点值。
有关更多自定义使用压力值对3D Touch的实现,请阅读以下资料:

iOS9 3DTouch开发的更多相关文章

  1. 【iOS9系列】-3DTouch开发

    [iOS9系列]-3DTouch开发 第一:简介 3DTouch 是iOS9系统系统下,在iPhone6s(iPhone6s Plus)手机上才能够使用的功能.熟练使用后,发现还是很便捷的. 但是模拟 ...

  2. 3DTouch开发 (基础)

    一.3DTouch开发准备工作(让模拟器也支持 3DTouch 的解决办法) 需要支持3DTouch的设备,如iPhone6s或以上.iOS9或以上.Xcode7或以上,估计很多和我一样的屌丝还没有i ...

  3. fir.im Weekly - iOS9 适配开发教程

    期待已久的 iOS 9 发布了,很多人更新完毕得出结论:这是值得升级的版本.随之而来的是适应 iOS9 开发技术.本期 Weekly 收集了一些关于 iOS9 相关的开发资源,希望对你有帮助. iOS ...

  4. iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览

    [iOS]iOS9 3DTouch.ShortcutItem.Peek And Pop技术一览   3DTouch UITouch类里API的变化 iOS9中添加的属性 altitudeAngle 当 ...

  5. ios9 -3dtouch 手势添加到app上

    模拟器实现3dtouch参考以下网站: http://my.oschina.net/u/2340880/blog/511509 - (BOOL)application:(UIApplication * ...

  6. iOS9 3DTouch 之 Home Screen Quick Actions

    最后更新:2016-12-18 测试环境: Xcode8.1 一.前言 iOS9 已经过去一年了,3D Touch也在项目中实战过,但一直没有总结一下,现在新的项目也用到了3D Touch, 网上找了 ...

  7. ios9 3dtouch 博客

    http://my.oschina.net/u/2340880/blog/511509#OSC_h3_3

  8. iOS9新特性-3D Touch

    本文主要讲解3DTouch各种场景下的开发方法,开发主屏幕应用icon上的快捷选项标签(Home Screen Quick Actions),静态设置 UIApplicationShortcutIte ...

  9. iOS 3D Touch实践

    本文主要讲解3DTouch各种场景下的开发方法,开发主屏幕应用icon上的快捷选项标签(Home Screen Quick Actions),静态设置 UIApplicationShortcutIte ...

随机推荐

  1. aspcms,2.x以上版本,保护栏目不可删除处理方法

    aspcms,2.x以上版本,保护栏目不可删除处理方法.首先找到\admin\_content\_Sort\AspCms_SortFun.asp这个文件.然后将if  isnul(id) then a ...

  2. 用自己赚的钱第一次坐飞机 那feel倍儿爽

    马年春晚上,歌手大张伟的神曲<倍儿爽>如今已传遍大街小巷.其实,不管人家到底有没有炒作,能让我们这些观众感觉到放松.乐呵,那就是一个成功的春晚节目.而今年,我也如同这歌中唱的一样,活得倍儿 ...

  3. centos安装mono

    1.查看mono最新版本 http://download.mono-project.com/sources/mono 2.安装依赖环境 sudo yum install cmake automake ...

  4. LA 4255 UVa1423 拓扑排序

    题目给出的是Sij的正负号,Sij=ai+...+aj,所以令前缀和Bi=a0+a1+..+ai,a0=0,B0=0,则有Sij=Bj-B(i-1): 由此构造出Bi的拓扑序列,只要每个拓扑序列相邻的 ...

  5. JAVA中的异常及处理异常的方法

    异常 这是我老师的喜好:就是说一上来就拿一张图给大家看看,过过瘾-_- 这是一张: 异常分类图 来,这里还有一张带中文的常见异常截图!!! 1:先来说说什么是异常吧: 其实就是"阻止当前方法 ...

  6. Java 导入Excel文件到数据库

    原文:http://www.jb51.net/article/44021.htm 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两 ...

  7. AngularJS 后台交互

    我们可以使用内置的$http服务直接同外部进行通信.$http服务只是简单的封装了浏览器原生的XMLHttpRequest对象. 1.链式调用 $http服务是只能接受一个参数的函数,这个参数是一个对 ...

  8. JAVA 中XML的解析

    XML:  可扩展标记语言(extensible Markup Language) 用于标记电子文件使其具有结构性的标记语言.XML可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定 ...

  9. 【前端】Node.js学习笔记

    module.exports 使用方式: // File Name: hello.js function greet() {/*......*/} // 有下面这两种写法: // 1. module. ...

  10. 在Excel中制作复合饼图

    在Excel中插入饼图时有时会遇到这种情况,饼图中的一些数值具有较小的百分比,将其放到同一个饼图中难以看清这些数据,这时使用复合条饼图就可以提高小百分比的可读性. 文中的复合饼图只是方便以后记忆,故不 ...