【iOS9系列】-3DTouch开发
【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动态标签
- 静态标签
静态标签需要在项目的配置plist文件中进行配置,在用户安装程序后就可以使用,并且排序会在动态标签的前面。

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

参数解释
| Name | 解释 | 是否必须 |
|---|---|---|
| UIApplicationShortcutItemType | 设置类型字符串,点击后以便在程序中处理 | 是 |
| UIApplicationShortcutItemTitle | centered | 是 |
| UIApplicationShortcutItemSubtitle | 标签的副标题 | 否 |
| UIApplicationShortcutItemIconType | (Icon类型)系统枚举值 | 否 |
| UIApplicationShortcutItemIconFile | Icon文件 | 否 |
| UIApplicationShortcutItemUserInfo | 字典信息(用于传值) | 否 |
- 动态标签
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关注。
参考:
【文档】在iPhone上使用3D Touch - Apple 3D Touch 开发API文档的中文版
作者:Darren
微博:@IT_攻城师
github:@Darren90
博客:http://www.cnblogs.com/fengtengfei/
欢迎您的访问...
【iOS9系列】-3DTouch开发的更多相关文章
- 3DTouch开发 (基础)
一.3DTouch开发准备工作(让模拟器也支持 3DTouch 的解决办法) 需要支持3DTouch的设备,如iPhone6s或以上.iOS9或以上.Xcode7或以上,估计很多和我一样的屌丝还没有i ...
- C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)
既然是一个窗体设计器,那就应该能够设置控件的属性,设置属性最好的当然是PropertyGrid了,我们仅仅需要使用一个PropertyGrid.SelectedObject = Control就可以搞 ...
- Spring基础系列-Web开发
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9996902.html SpringBoot基础系列-web开发 概述 web开发就是集成 ...
- 【iOS9系列】- CoreSportlight内容索引的使用
[iOS9系列]- CoreSportlight内容索引的使用 前言 在iOS9中新增加了的CoreSportlight内容索引,这个还是比较实用的,当我们的App比较多的时候,我们会实用iOS系统的 ...
- 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇)
系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 扫码体验,先睹为快 可以扫描下微信小程序的 ...
- iOS9 3DTouch开发
在iOS 9中,新iPhone将第三维度添加到了用户界面. 用户现在可以用力摁下主屏按钮来快速调出应用提供的功能菜单. 在应用中,用户现在可以用力摁下视图以查看更多内容的预览并且快速访问一些功能. 想 ...
- iOS开发系列--网络开发
概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...
- iOS开发系列--并行开发其实很容易
--多线程开发 概览 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算.可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行.但是机器码是按顺序执行的, ...
- 【开源】OSharp3.3框架解说系列:开发计划与进度
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
随机推荐
- 树莓派 - 蓝牙 (1) 试试Beacon
首先先了解一下bluez, 以及常用的tools. - hcitool.bluetoothctl等工具,可以进行BLE设备的扫描.连接.配对.广播等操作: - hcitool可以发送HCI comma ...
- 条款4:确定对象被使用前已被初始化(Make sure that objects are initialized before they're used)
其实 无论学何种语言 ,还是觉得要养成先声明后使用,先初始化再使用. 1.永远在使用对象之前先将其初始化. 内置类型: 必须手工完成. 内置类型以外的:使用构造函数完成.确保每一个构造函数都将对象的一 ...
- Linux 基本操作指南
Linux基本操作 1. su 切换用户 2.exit 退出当前登录用户 3.useradd 用户名 -m 在home目录下 创建一个和用户名同名的目录,并添加一个用户 (有root权限才能 ...
- 利用virtualbox中的虚机制作主机启动盘
制作镜像的过程: 第一步:1.Windows下先下载安装virtualbox usb3.0驱动:https://download.virtualbox.org/virtualbox/5.2.20/Or ...
- C#静态构造函数和非静态构造函数
// 使用静态构造函数时,需要注意几点 //1. 一个类中,最多只能有一个静态构造函数,不允许静态构造函数的重载: //2. 不能加任何访问修饰符(public/private/internale等) ...
- css中background-image背景图片路径设置
web项目中经常会用到background-image:url(),很多小伙伴不知道该怎么写需要的图片路径. 在此之前先要知道几个重要的东东: / 项目根目录 这个不用多说,就是程序 ...
- BestCoder Round #79 (div.2)-jrMz and angles,,暴力求解~
jrMz and angle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- HDU 1078 dfs+dp
题目大意: 在n*n的矩阵中,每个格子放置了一定数量的食物,一只老鼠每次水平或竖直最多移动k格,每次到的位置食物都要比前一次多,问最后一共能得到多少食物 这道题利用记忆化搜索做,利用nowstate不 ...
- 【译】Nodejs最好的ORM
TypeORM github: https://github.com/typeorm/typeorm这篇译文是从TypeORM github上的使用说明上翻译过来的,已经提交PR并merge到库中了. ...
- mac上storm standalone安装
一.安装storm 下载storm http://storm.apache.org/downloads.html export STORM_HOME=/Users/huangjiahong/Docum ...