博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3D Touch 的官方文档翻译及个人总结
阅读量:4119 次
发布时间:2019-05-25

本文共 2227 字,大约阅读时间需要 7 分钟。

        前几天给自家的APP加上了3D Touch.从学习到集成用了大半天的时间.(其实3D Touch so easy. 之所以用了大半天时间是因为3D Touch 的Home Screen Quick Actions 需要考虑一个问题.至于这个问题好不好解决,关键还是看你自己项目的主UI结构喽大笑)

官方文档翻译:

        搭载iOS 9 系统的新手机型号(其实就是iPhone 6S 啦)为用户提供了一个三维的交互体验.

                1. 用户可以点击APP的icon来直接执行app中的方法.

2. 在app内部,用户可以预览内容和快速进行一些操作.

博主总结在进行3D Touch开发时前要遵循两个原则:

1. 在没有3D Touch的设备要用其他手势代替该功能(比如长按...).

2. 必须在运行时检测 3D Touch 是否可用,因为用户可能会随时关闭3D Touch. 具体操作和代码见这     里: http://blog.csdn.net/soindy/article/details/49904805

一 . Home Screen Quick Actions

之前用户可以轻点一个app的icon来加载它,或者长按来编辑其在屏幕的显示.现在在iPhone 6S 和iPhone 6S Plus,用户可用得带一个快捷菜单,当用户选择了一个快捷动作,你的应用程序被launch或者activate.相应的在appDelegate的代理方法中会收到该快捷动作的相关信息.

好的快捷启动是预测用户的操作,从而加速用户和app的交互. 这里有静态和动态两种快速启动方式.

1. 定义静态的快速启动只需要在app的Info.plist中定义UIApplicationShortcutItems数组即可.比如下图:

至于每个key代表的什么意思请看这里的官方文档翻译:

二 .Peek and Pop

你可以 enable 你app中的view controller来响应用户不同强度的按压.当用户不断用力的时候,交互分为三个阶段:

1. 指示该内容的preview是否可用.

2. 显示一个有快速选项(peek quick actions)的快速预览(peek的形式显示preview).

3. 在preview中显示的导航栏(optional).  ----- pop

当你使用 peek 和 pop 的时候.系统判读这个压力的强度在哪个阶段,并且如何过渡到下一个,意思就是这个动作和动 画是苹果实现的,开发者不需要关系.  用户可以是 设置 -> 通用 -> 辅助功能 -> 3D Touch中调整peak and pop的灵 敏度.

1. 指示该内容的preview是否可用. 当轻轻的按的时候,周围的其他内容模糊,证明peek是可用的.
2. peek. 再稍微用力一点按压,来显示peek.peek一般用来显示更多内容.例如下面的Mail app.如果用户在这个点停止 按压.peek消失,app回到正常状态.
3. peek quick actions. 如果用户向上轻滑,系统会显示你定义的与之相关的quick actions.每一个peek quick action是你app的连接.用户轻点一个quick action,可以调用这个连接.同样你也可以在web view中使用peek and pop.

三. Force Properties

在iOS 9 中.UITouch有2个新特性来支持你自定义3D Touch. force 和 maximumPossibleForece. 这些特性可以让你检测和反馈你app在UIEveent对象中收到的压力的大小. Force是一个float值,高动态变化.

具体代码如下:

 

            // 如果支持3Dtouch

            if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) { // 必须判断,否则低版本crash

                

                if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) { // 必须动态检测

                    // 开启定时器发送命令

                    if (!_touchTimer) {

                        

                        _touchTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(touchStrengthChanged) userInfo:nil repeats:YES];

                    }

            }

- (void)touchStrengthChanged {

          if (self.touchStrength.force > 0) {

             NSLog(@"%d",self.touchStrength.force);

        }

          }

四. 3D Touch的可用性和人机交互指南

3D Touch仅在支持3D Touch的设备并且3D Touch打开的时候可用.在iOS9中3D Touch默认是打开的..用户可以在设置中将其关闭.当3D Touch可用的时候,好好的利用它的特性.而在不可用的设备要提供相对应的实现,比如实现 touch and hold(就是长按). 3D Touch也支持VoiceOver. 

你可能感兴趣的文章
如何实现a===1 && a===2 && a===3返回true?
查看>>
49个在工作中常用且容易遗忘的CSS样式清单整理
查看>>
20种在学习编程的同时也可以在线赚钱的方法
查看>>
隐藏搜索框:CSS 动画正反向序列
查看>>
12 个JavaScript 特性技巧你可能从未使用过
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(上)
查看>>
【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
查看>>
【5分钟代码练习】01—导航栏鼠标悬停效果的实现
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
8种ES6中扩展运算符的用法
查看>>
【视频教程】Javascript ES6 教程28—ES6 Promise 实例应用
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
【5分钟代码练习】02—用CSS Grid实现响应式图片布局的效果
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>