苹果在iOS9 上引入3D触控(压力触控)功能,API 主要分为三个模块:快速启动、Peek 和 Pop,压敏技术。
该新功能在iOS9 中你默认是有效的,这样就意味着你现在就可以提交支持该技术的app。现在,我将快速直接的深入的探索 快速启动的技术,如果幸运的话,你就可以在15分钟内学完。如果你想一更新就受到消息,那么关注我就好了,如果没有进一步,那我们就“潜水”。
 
 
快速启动:
快速启动是基础的home 屏幕上的图标快捷方式,它有静态和动态的两种方式,iOS9最多支持四中快速启动方式在你的应用程序中,基于这个限制,系统会优先加载你的静态快速启动的方式。如果你的静态方式没有设置,你还可以自定义动态的启动方式,最后 一个或者多个快速启动行为将会被展现
 
静态的启动方式定义在 info.plist中的 字典的数组UIApplicationShortcutItems 中,你需要在每个字典中对一下的 键(key) 提供 有效值(value) :
  UIApplicationShortcutItemType   (必须的): 要求独一无二的字符串标志对每个 item
 UIApplicationShortcutItemTitle(必须的):显示在UI 上的 item的名字
 UIApplicationShortcutItemSubtitle(可选的):显示在UI上的item 的副标题名字
UIApplicationShortcutItemIconType(可选的):系统系统的图标,所有可支持的 都可以在 here找到
UIApplicationShortcutItemIconFile (可选的):自定义的图片名称在  assets  目录下,如果提供了,UIApplicationShortcutItemIconType 将会被忽略,图标应该是 35 * 35 的单色图片(?此处有待考究?),,所有可支持的 键(key)都可以在 here 找到。
 
当静态快捷启动方式定义在info.plist 中,我们需要对其做出相应,应用程序的代理方法:
     application(_:performActionForShortcutItem:completionHandler:) that gets
     一旦用户点击了快速启动的方式,该代码方法就会被调用。这存在一个你必须调用的的block,只要你做了 快捷操作。我所理解的是,它将通过改变你的视图层级结构来 对你的行为做出相应,然后回调 block。它也不是看起来的那么简单。
 
这里存在一个需要 根据你的应用程序是否被运行或者进入前台处理的 问题。你必须检查 
  application:didFinishLaunchingWithOptions:
或者
application:willFinishLaunchingWithOptions:
是否是从快捷方式启动。通过检查UIApplicationLaunchOptionsShortcutItemKey 在 launchOptions 的字典,如果你确实需要从快捷方式启动的话,你需要设置在application:willFinishLaunchingWithOptions: 中设置相应的视图层次,并且返回false, 这样会阻止 application(_:performActionForShortcutItem:completionHandler:)  被调用。
 
一下有一些简单的例程演示我是如何进行处理的,所有的app 的代码都可以在github sample code. 被下载。
 
 
 
动态行为能够通过使用UIApplicationShortcutItem 和 UIMutableApplicationShortcutItem类,简单的创建对象,然后添加到UIApplication’s shortcutItems 属性里面 ,再管理这些动态的快捷方式时候,存在一些潜在的非常复杂的问题,在这里 我将不再深入研究。
 
 
-----------------------------------------------------------------------------------
转载:请注明出处:
  http://www.cnblogs.com/gaox97329498/

3D Touch:静态快速启动方式的更多相关文章

  1. Ubuntu 如何为 XMind 添加快速启动方式和图标

    目录 Ubuntu 如何为 XMind 添加快速启动方式和图标 Ubuntu 如何为 XMind 添加快速启动方式和图标 按照教程Ubuntu16.04LTS安装XMind8并创建运行图标进行Xmin ...

  2. 3D touch 静态、动态设置及进入APP的跳转方式

    申明Quick Action有两种方式:静态和动态 静态是在info.plist文件中申明,动态则是在代码中注册,系统支持两者同时存在. -系统限制每个app最多显示4个快捷图标,包括静态和动态 静态 ...

  3. SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解

    SpringBoot介绍 引言 为了使用ssm框架去开发,准备ssm框架的模板配置 为了Spring整合第三方框架,单独的去编写xml文件 导致ssm项目后期xml文件特别多,维护xml文件的成本也是 ...

  4. 从3D Touch 看 原生快速开发

    全新的按压方式苹果继续为我们带来革命性的交互:Peek和Pop,Peek 和 Pop 让你能够预览所有类型的内容,甚至可对内容进行操作,却不必真的打开它们.例如,轻按屏幕,可用 Peek 预览收件箱中 ...

  5. 使用批处理文件命令行方式快速启动和停止IIS、SqlServer

    原文:使用批处理文件命令行方式快速启动和停止IIS.SqlServer 虽然现在内存便宜了,但是自己还是嫌自己的512M内存太小,没办法,后台运行的东西太多了,有很多都是有用的没法关闭的.IIS和SQ ...

  6. 如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏)

    问题:如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏) 在XP下,添加方式是直接把快捷方式复制到%appdata%\Microsoft\Internet Explorer\Qui ...

  7. windows程序快速启动的方式:WIN键+R

    WIN键+R是windows快速启动程序的一种方式,一般能独立运行的程序都能以这种方式启动.如notepad.calc.explorer等程序. 在命令行方式下explorer加上不同的参数,会得到不 ...

  8. iOS 3D Touch实践

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

  9. 初学3D Touch

    引言 With iOS 9, new iPhone models add a third dimension to the user interface. A user can now press y ...

随机推荐

  1. 如何用googletest写单元测试

    http://www.uml.org.cn/c++/201203293.asp googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows.linux.Mac等OS平台 ...

  2. 解决Sqlite UTF-8中文数据格式在DOS窗口下中文乱码

    问题如下图所示: 右键查看DOS属性:点击选项->当前代码页为GBK 只要将当前代码页编码值设置为UTF-8就可以了: ‘退出sqlite:.exit 输入:chcp 65001回车 右键属性: ...

  3. PowerShell_零基础自学课程_3_如何利用Powershell ISE调试PS脚本

    微软在推出PS的同时,没有忘记其一贯的作风,什么东东都弄一个IDE环境,这不微软没有忘记给PS也来一个IDE的环境, 通过这个IDE环境,可以建立psl文件,可以调试psl文件. 1.IDE界面 我们 ...

  4. windows 守护进程

    use Win32::Process::Info; while (1==1){ use Sys::Hostname; use HTTP::Date qw(time2iso str2time time2 ...

  5. 【转】 Git 常用命令详解(二)----不错

    原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: ...

  6. pyqt menu子级方向例子学习

    代码和UI文件:http://yunpan.cn/QCkXbX8mnSNke(提取码:51e1) 图片如: 代码如下: from PyQt4 import QtCore,QtGui,Qt import ...

  7. uva 310 L--system(隐式图搜索+字符串处理)

     L-system  A D0L (Deterministic Lindenmayer system without interaction) system consists of a finite ...

  8. EasyUI 两个日期比较

    两个日期进行比较,后一个日期不能早于晚一个日期.需要自己去扩展validatebox的方法 1.对比2个密码是否相同 $.extend($.fn.validatebox.defaults.rules, ...

  9. hdu 5063 Operation the Sequence(Bestcoder Round #13)

    Operation the Sequence                                                                     Time Limi ...

  10. [Hapi.js] Serving static files

    hapi does not support serving static files out of the box. Instead it relies on a module called Iner ...