版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.10.27 星期六 |
前言
3D Touch是一种立体触控技术,被苹果称为新一代多点触控技术,是在Apple Watch上采用的Force Touch,屏幕可感应不同的感压力度触控。3D Touch,苹果iPhone 6s以后的机型中出现的新功能,看起来类似 PC 上的右键。有Peek Pop 两种新手势。2015年9月10日,苹果在新品发布会上宣布了3D Touch功能。Force Touch和3Dtouch其实是基于同一种技术,且都基于苹果的Taptic引擎,但是不管你承不承认或者有没有意识到,3D Touch的确更优于Force Touch。接下来这个专题我们就看一下3D Touch相关的内容。感兴趣的可以看下面几篇文章。
1. 3D Touch相关(一) —— 基于3D Touch的Peek 和 Pop(一)
2. 3D Touch相关(二) —— 3D Touch简介(一)
3D Touch APIs
iOS 9提供以下3D Touch API:
- Home screen quick action API - 主屏幕快速操作API。用于为您的应用图标添加快捷方式,并加速用户与您的应用的互动。
- 通过UIKit peek and pop API,您可以在应用程序中轻松访问其他内容,同时保持用户的上下文。 使用peek快速动作API为您的应用程序的
touch-and-hold
操作提供按下启用的替换。 - Web view peek and pop API允许您启用系统介导的HTML链接目标预览。
-
UITouch force properties,您可以向应用添加基于
force
的用户的自定义交互。
无论您采用哪种API,您的应用都必须在运行时检查3D Touch的可用性。
Checking for 3D Touch Availability - 检查3D Touch可用性
要在运行时检查设备是否支持3D Touch,请在特征集合中读取具有特征环境的任何对象的forceTouchCapability属性值(请参阅UITraitEnvironment Protocol Reference)。 用户可以在应用程序运行时关闭3D Touch,因此请阅读此属性作为traitCollectionDidChange:代理方法实现的一部分。
为确保您的所有用户都可以访问您应用的功能,请根据3D Touch是否可用来分支您的代码。 如果可用,请利用3D Touch功能。 当它不可用时,提供替代方案,例如通过使用UILongPressGestureRecognizer类实现的touch and hold
。
有关如何使用支持3D Touch的设备增强应用程序交互的建议,同时不要让其他用户落后,请参阅iOS Human Interface Guidelines
。
Home Screen Quick Actions
iOS 9支持主屏幕静态和动态快速操作。
-
Static quick actions - 应用程序安装后,用户可立即使用静态快速操作。在UIApplicationShortcutItems数组中的应用程序的
Info.plist
文件中定义主屏幕静态快速操作。 - Dynamic quick actions - 首次启动后,用户可以使用动态快速操作。使用UIApplicationShortcutItem, UIMutableApplicationShortcutItem和UIApplicationShortcutIcon类定义主屏幕动态快速操作。使用shortcutItems属性向应用程序的共享UIApplication对象添加动态快速操作。
iOS 9最多可为您的应用显示四个主屏幕快速操作。在此限制范围内,系统首先显示静态快速操作,从菜单中的最顶部位置开始。如果静态项目没有耗尽限制并且您还定义了动态快速操作,则会显示一个或多个动态快速操作。
主屏幕静态和动态快速操作最多可以显示两行文本和一个图标。系统格式化文本,包装文本,对齐文本,并根据需要添加省略号。对于快速操作的图标,请使用通过UIApplicationShortcutIcon类的iconWithType:类方法提供的系统模板图标之一。如果您想使用自定义图标,它必须是模板(即类似模板)图像,您可以使用该类的iconWithTemplateImageName:类方法创建该图像。
主屏幕快速操作功能支持Voice Over
。
有关实现主屏幕快速操作的详细信息,请阅读以下材料:
Home Screen Quick Actions and Template Icons in *iOS Human Interface Guidelines
- ApplicationShortcuts: Using UIApplicationShortcutItems* (sample code)
- UIApplicationShortcutItems in Information Property List Key Reference
- UIApplicationShortcutItem Class Reference
- UIMutableApplicationShortcutItem Class Reference
- UIApplicationShortcutIcon Class Reference
UIKit Peek and Pop
iOS 9允许您为peek的用户功能配置视图控制器,当用户按下指定视图时提供其他内容的预览,并pop
,提交查看该内容并导航到该内容。
为了支持3D Touch功能设备上的peek and pop
,iOS 9 SDK包括:
- UIViewController类中的新方法,用于注册和取消注册视图控制器以参与3D Touch
- 支持3D Touch的新
view controller
协议
您可以选择配置预览视图控制器,以包含一组peek
快速操作或深入链接到您的应用程序。用户可以通过向上滑动来获得peek
快速动作。
为了支持peek
快速操作,iOS 9 SDK包括:
有关实现peek and pop
以及实施peek
快速操作的详细信息,请阅读以下材料:
-
iOS Human Interface Guidelines
中的3D Touch - UIViewController Class Reference中的registerForPreviewingWithDelegate:sourceView:和unregisterForPreviewingWithContext:方法的描述
- UIViewControllerPreviewingDelegate Protocol Reference,描述上下文对象为启用3D Touch的视图控制器采用的接口
- UIViewControllerPreviewing Protocol Reference,描述用于响应用户强制触摸提供预览视图控制器(用户术语)的界面,以及用于提供提交视图控制器(pop,用户术语)以响应更深的按压预览
-
UIPreviewAction Class Reference,描述了一个
peek
快速动作 - UIPreviewActionGroup Class Reference,描述了类似于子菜单的快速动作分组
-
UIPreviewActionItem Protocol Reference,描述了
peek
快速操作和组所采用的接口 - ViewControllerPreviews: Using the UIViewController previewing APIs(示例代码)
Web View Peek and Pop
在Web视图中,您可以使用新的allowsLinkPreview
属性为链接和检测到的数据启用peek and pop
。在iOS 9中,此属性在推荐的WKWebView类(在WebKit框架中)和较旧的UIWebView类(在UIKit框架中)中可用。
使用Safari Services
框架中的SFSafariViewController(Safari视图控制器)类自动peek and pop
链接和检测到的数据。
Force Properties in UITouch Objects
UITouch类有两个新属性可支持应用程序中3D Touch的自定义实现:force和maximumPossibleForce。 iOS设备上首次使用这些属性可以检测并响应应用程序收到的UIEvent对象中的触摸压力。
在iPhone上,触摸力具有很高的动态范围,可作为应用程序的浮点值。
有关使用force
值提供3D Touch自定义实现的详细信息,请阅读以下材料:
- UITouch Class Reference中force和maximumPossibleForce属性的描述
- TouchCanvas: Using UITouch efficiently and effectively(示例代码)
后记
本篇主要讲述了采用3D Touch,感兴趣的给个赞或者关注~~~