【iOS9系列】-3DTouch开发

第一:简介

3DTouch 是iOS9系统系统下,在iPhone6s(iPhone6s Plus)手机上才能够使用的功能。熟练使用后,发现还是很便捷的。

但是模拟器是不支持这个手势的。只能在真机上进行测试,但是有大神在Github开源了一个插件,以便在模拟器上使用SBShortcutMenuSimulator,具体教程可以自行查看。

第二:3D Touch入门

2.1 基本类型

  • 主屏幕快速选项(Home Screen Quick Action)

通过主屏幕的应用图标,可以通过3DTouch呼出快捷菜单,进行快速定位相关功能页面

  • Peek和Pop

  • Peek快速选项

2.2 3DTouch开发-创建

这里主要讲解的是主屏幕快速选项(Home Screen Quick Action),其他的稍后会进行补充

iOS9提供了两种主屏幕快速选项的创建方式:1:静态标签;2动态标签

  1. 静态标签

静态标签需要在项目的配置plist文件中进行配置,在用户安装程序后就可以使用,并且排序会在动态标签的前面。

以上plist文件的截图对应的效果如下

参数解释

Name 解释 是否必须
UIApplicationShortcutItemType 设置类型字符串,点击后以便在程序中处理
UIApplicationShortcutItemTitle centered
UIApplicationShortcutItemSubtitle 标签的副标题
UIApplicationShortcutItemIconType (Icon类型)系统枚举值
UIApplicationShortcutItemIconFile Icon文件
UIApplicationShortcutItemUserInfo 字典信息(用于传值)
  1. 动态标签

TODO

2.3 3DTouch开发-相应回调

iOS9以后在AppDelegate增加了回调方法

-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{ }

我们可以在这里进行逻辑处理

可以通过shortcutItem.type来获取UIApplicationShortcutItemType类型,进而可以得知点击的菜单,进行逻辑代码的书写。

同时,在我们的App方法:didFinishLaunchingWithOptions中我们可以取得UIApplicationShortcutItemType的值

UIApplicationShortcutItem *item = [launchOptions valueForKey:UIApplicationLaunchOptionsShortcutItemKey];
item.type//取到的也是`UIApplicationShortcutItemType`的值 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ }

这样我们可以进行逻辑处理并在didFinishLaunchingWithOptions返回NO,防止处理逻辑被反复回调。


项目源码,详见https://github.com/darren90/EasyNote - 这是我已经写好的完成的笔记记录的项目,欢迎Star关注。

参考:


作者:Darren

微博:@IT_攻城师

github:@Darren90

博客:http://www.cnblogs.com/fengtengfei/

欢迎您的访问...

【iOS9系列】-3DTouch开发的更多相关文章

  1. 3DTouch开发 (基础)

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

  2. C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)

    既然是一个窗体设计器,那就应该能够设置控件的属性,设置属性最好的当然是PropertyGrid了,我们仅仅需要使用一个PropertyGrid.SelectedObject = Control就可以搞 ...

  3. Spring基础系列-Web开发

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9996902.html SpringBoot基础系列-web开发 概述 web开发就是集成 ...

  4. 【iOS9系列】- CoreSportlight内容索引的使用

    [iOS9系列]- CoreSportlight内容索引的使用 前言 在iOS9中新增加了的CoreSportlight内容索引,这个还是比较实用的,当我们的App比较多的时候,我们会实用iOS系统的 ...

  5. 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇)

    系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 扫码体验,先睹为快 可以扫描下微信小程序的 ...

  6. iOS9 3DTouch开发

    在iOS 9中,新iPhone将第三维度添加到了用户界面. 用户现在可以用力摁下主屏按钮来快速调出应用提供的功能菜单. 在应用中,用户现在可以用力摁下视图以查看更多内容的预览并且快速访问一些功能. 想 ...

  7. iOS开发系列--网络开发

    概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...

  8. iOS开发系列--并行开发其实很容易

    --多线程开发 概览 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算.可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行.但是机器码是按顺序执行的, ...

  9. 【开源】OSharp3.3框架解说系列:开发计划与进度

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

随机推荐

  1. 测试linux服务器带宽

    测试准备 1. 计划考量参数 TCP上传数据带宽 TCP下载数据带宽 UDP上传带宽 UDP下载带宽 多并发支持 稳定性 Tcp通讯网络延迟(小包:32.中包1k.大包1M) UDP通讯网络延迟(小包 ...

  2. ixcache的蜜汁突发故障

    公元2018年 7月29日 晚上21点整,我司一直正常运行的ixcache线路异常断开. ??? 公司业务包含提供互联网接入服务,所以这个现象将会导致用户上网体验变差,网速变慢,看视频的速度下降等等, ...

  3. go语言碎片整理之标准库log

    log Go语言内置的log包实现了简单的日志服务.本文介绍了标准库log的基本使用. 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法.本包也提供了一个预定义的“标 ...

  4. 实验:iscsi共享存储

    实验名称: iscsi共享存储 实验环境: 我们需要准备一个磁盘,对于这个磁盘我们需要使用,将这个磁盘空间共享给iscsi客户端: 实验需求: 我们这里使用两台服务器来实现iscsi共享存储: 1.指 ...

  5. react 语法细节总结说明

    1.当要获取某个数据列表中的某个字段时,用“.”附加的形式.例如:获取user中的balance字段,用this.props.user.balance 来表示. 2.当要打印某个数据或字段结果时,co ...

  6. oracle 9i/10g/11g(11.2.0.3)安装包和PATCH下载地址汇总

    今天上PUB看见一位热心人汇总了这么个地址列表,转发来空间: 把下面的地址复制到讯雷里就可以下载. -------------------------------------------------- ...

  7. HDU 1874 最直接的最短路径问题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路. ...

  8. [POJ2443]Set Operation(bitset)

    传送门 题意:给出n个集合(n<=1000),每个集合中最多有10000个数,每个数的范围为1~10000,给出q次询问(q<=200000),每次给出两个数u,v判断是否有一个集合中同时 ...

  9. [POJ1797] Heavy Transportation(最大生成树 || 最短路变形)

    传送门 1.最大生成树 可以求出最大生成树,其中权值最小的边即为答案. 2.最短路 只需改变spfa里面的松弛操作就可以求出答案. ——代码 #include <queue> #inclu ...

  10. Poj1704:staircase nim【博弈】

    题目大意:有一个无限长的一维的棋盘,棋盘上N个格子放置着棋子.两个人轮流操作,每次操作能选择其中一个棋子向左移动,但不能越过其它棋子或者两枚棋子放在同一格中,最后不能操作的人算输,问先手是否必胜? 思 ...