金田

北京时间9月10日凌晨, Apple在美国旧金山比尔格拉汉姆公民大礼堂(Bill Graham Civic Auditorium)召开新品发布会。本次着重介绍了3D Touch功能, 大体介绍一下:

- 增强版的Force Touch(压力触控)技术,Force Touch之前被应用在于Apple Watch

- 根据力度的不同,从而带来更多样化的用户体验。比如,用力按快进按钮会使快进的速度更快、用力度触摸代替了长按拖拽选项、用力按屏幕时用户可以自行调节应用界面等

- 在点击、滑动、缩放的基础上,为iPhone引入了两种新手势:预览(Peek)和敲击(Pop)。该功能可以让图片、邮件、信息和其他内容浮到屏幕的最表面,同时使其他内容出现虚化效果。内容突出显示效果随手指按压力度变化

- 通过与Retina屏幕集成的电容传感器实现,可以通过检测玻璃与背光的距离感知手指力度大小

- 目前支持3D Touch的设备只有 iPhone 6s 和 iPhone 6s Plus,即使配有Apple Pencil的强大如iPad Pro,也是不支持。不过按照Apple一贯的做法,之后再新出的加强版iPad Pro,应该是会整合该功能

- 3D Touch功能默认是开启的,但用户也可以在系统设置中把它关掉(Settings > General > Accessibility > 3D Touch)

- 支持3D Touch的最低系统要求为 iOS 9,开发人员则需要至少使用XCode 7 GM,目前的最新版为XCode 7.1 Beta

和开发人员关系比较密切的部分:

- Pressure Sensitivity:压力灵敏度,可以和绘画类及其它创作型软件结合使用,例如根据压力的大小来改变笔触/画线的粗细值。主要为UITouch类增加了一些新属性,例如estimatedProperties(触摸属性),updatedProperties(触摸对象更新)等,新增的API,主要集中在获取X/Y坐标时的精度部分,如 - PreciseLocationInView:,- PrecisePreviousLocationInView:等,有个需要特别注意的是UIForceTouchCapability,使用功能前,必须进行功能可用性检测

- Peek and Pop:新引入的手势,主要可以让用户预览内容,甚至进行操作。例如Mac中的文档预览快捷键,浏览器中的快照内容等

- Quick Actions:快捷菜单,完整名称是Home Screen Quick Actions,类似于电脑中的右键菜单,主要用于快捷操作,这个从它的API名字就可以看出来:UIApplicationShortcutItem。正如Apple描述的那样,让用户使用更少的操作步骤,更快的进行他们最常用的操作使用,总结一句就是“一键操作”。该部分也分了2个类型:静态 & 动态;其中静态方式在info.plist中进行配置;动态则通过UIApplicationShortcutItem等API进行代码级动态配置处理。系统默认会优先展示静态的Actions。若App安装后从未打开时,则默认只会展示静态Actions,只有至少完整启动一次之后,动态Actions才会出现。该部分之后会抽时间专门介绍一下。

图1 Quick Actions

小细节

- 在支持3D Touch功能的真机设备中,当Touch压力发生改变的时候,系统会调用 touchesMoved: API方法。这样导致的一个问题就是,在touch move事件中,X/Y坐标可能是没有发生改变的~~~建议App中最好兼容准备

- iPad Pro中搭配Apple Pencil之后,App的刷新率会发生改变。例如原本是 20/s,搭配Apple Pencil之后,则会变成 40/s。刷新率的提升可能是为了获取X/Y坐标时更加精确,但对于App的UI界面更新会造成影响,例如频繁的生成/删除内存对象等。

- 目前3D Touch 只能在真机设备中进行测试,模拟器中暂时无法进行调试/测试~~

- 目前国外已有开发者使用其他方式在低版本(iOS 9以下)系统中模拟出了类似 Quick Actions效果,感兴趣的可以搜索

参考链接

https://developer.apple.com/ios/3d-touch/

https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/Adopting3DTouchOniPhone/

https://developer.apple.com/library/prerelease/ios/releasenotes/General/RN-iOSSDK-9.1/index.html#//apple_ref/doc/uid/TP40016570

版权所有,转载须注明作者(金田)及原文出处(原文)。

iOS 9之3D Touch的更多相关文章

  1. iOS开发之3D Touch

    1.简介 3DTouch是在6s之后苹果的一项技术,只能在6s及其以上机型真机运行,Xcode的模拟器是不支持的. Quick Actions(点击icon的快捷方式) Peek&Pop(应用 ...

  2. 5月8日——iOS中的3D Touch效果

    需要在manifest.json文件中进行配置 需要执行的js代码为: 最终操作效果为 本篇文章主要采用了HTML5+  中的 launcher属性 具体可参照 http://www.html5plu ...

  3. iOS 9之3D Touch功能

    首先要有真机iPhone 6s以上,开发工具Xcode 7,然后在官方文档拷贝一段文字就可以了. <key>UIApplicationShortcutItems</key>   ...

  4. iOS 3D Touch 适配开发

    3D Touch的主要应用 文档给出的应用介绍主要有两块: 1.A user can now press your Home screen icon to immediately access fun ...

  5. iOS开发--3D Touch的基本使用

    1.桌面快捷菜单项 效果如图: 桌面快捷菜单 点击之后的效果如图: 点击桌面快捷菜单的效果 接下来看下具体实现:1).在-application:didFinishLaunchingWithOptio ...

  6. 【iOS】3D Touch

    文章内容来源于Apple的开发者文档:https://developer.apple.com/library/content/documentation/UserExperience/Conceptu ...

  7. iOS 3D Touch功能 3 -备

    新的触摸体验——iOS9的3D Touch 一.引言 二.在模拟器上学习和测试3D Touch 附.SBShortcutMenuSimulator的安装和使用 三.3D Touch的主要应用 四.3D ...

  8. iOS 3D Touch功能

    新的触摸体验——iOS9的3D Touch 一.引言 在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,其原理上是增加了 ...

  9. iOS开发 - 3D Touch 应用系列一 - Quick Actions 创建桌面 Icon 快捷方式

    个言 很久没发随笔了,有一年多了吧.期间也曾想继续去写随笔,但是因为各种原因而耽搁了.最近又想了一下,还是有很多东西想要写,想要分享,想要记录下来的东西.之后我也会不断写随笔,但不止于 iOS 的方向 ...

随机推荐

  1. Unity3D基础学习 利用NGUI的Texture播放视频

    利用NGUI播放视频,首先你得导入你的视频 你的电脑中必须安装QuickTime软件,没有,去下一个,如果是Windows系统,安装完之后重启. 接下来转换你的视频格式,如果你的视频在QuickTim ...

  2. mongodb3.0 性能測试报告 一

    mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver   共6台 cpu:  单颗8核 ...

  3. Android 4.2 通知通过PendingIntent启动Activity失败的问题

    今天突然发现在Android 4.2手机上点击通知消息无法打开Activity的问题,具体Logcat信息如下: 01-09 11:37:43.733: WARN/ActivityManager(92 ...

  4. VS2010每次编译都重新编译整个工程的解决方案

      在使用VS2010编译C++程序的时候,每次修改工程中的某一个文件,点击“生成-仅用于项目-仅生成**”时,往往都是整个工程都需要重新编译一遍.由于这个工程代码量太大,每次编译完成都需要将近10分 ...

  5. block为什么要用copy,runtime的简单使用

    分享一篇文章:link

  6. 读取文件内容返回List<String>类型

    文件内容格式: string1 string2 String 3 …… 很简单,两句话 String content = new String(Files.readAllBytes(Paths.get ...

  7. 注意在insert插入数据库时的int类型问题

    比如,一个语句,insert into mbProduct(p_UserID,p_BigID,p_qq)values("+getUserid+",'"+getdrpdl+ ...

  8. 一些SQL语句的问题

    1.getdate()函数问题 go create table table_1( id int primary key identity, name ) not null, daytime datet ...

  9. 1.tomcat部署项目的几种方式和weblogic部署方式及一点通讯

      第一种部署方式: 直接使用myeclipse 找到server服务 添加要部署的项目Add Deployment ,然后选中某个项目,首选Exploded Archive(development ...

  10. wm_char

    用于接收键盘输入的消息 int CXuexi2View::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateS ...