一.3d Touch 官方文档介绍

1.A user can now press your Home screen icon to immediately access functionality provided by your app.

2.Within your app, a user can now press views to see previews of additional content and gain accelerated access to features.

第一部分的应用是我们可以通过3D手势,在主屏幕上的应用Icon处,直接进入应用的响应功能模块。这个功能就例如我们上面的日历示例,会在Icon旁边出现一个菜单,点击菜单我们可以进入相应的功能单元。例如点击今日头条app图标便会弹出

第二部分是对app的一个优化,用户可以通过3D Touch手势在view上来预览一些预加载信息,这样的设计可以使app更加简洁大方,交互性也更强。例如预览短信功能

二.使用

针对第一种在 (第一部分的应用是我们可以通过3D手势,在主屏幕上的应用Icon处,直接进入应用的响应功能模块。这个功能就例如我们上面的日历示例,会在Icon旁边出现一个菜单,点击菜单我们可以进入相应的功能单元。)

在APPDelegate里面的

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { }
span.s2 { color: #bb2ca2 }
span.s3 { color: #703daa }

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}

方法里面实现

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #703daa }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { }
span.s2 { color: #000000 }
span.s3 { color: #3d1d81 }
span.s4 { color: #d12f1b }
span.s5 { font: 18.0px "PingFang SC"; color: #d12f1b }
span.s6 { color: #bb2ca2 }
span.s7 { color: #703daa }
span.s8 { color: #272ad8 }

UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"照片名字1"];

UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"照片名字2"];

UIMutableApplicationShortcutItem *item1 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"com.test.deep1" localizedTitle:@"名字自己起1" localizedSubtitle:@"Launch 2nd Level" icon:icon1 userInfo:nil];

UIMutableApplicationShortcutItem *item2 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"com.test.deep2" localizedTitle:@"名字自己起2" localizedSubtitle:@"Launch 2nd Level" icon:icon2 userInfo:nil];

NSArray *items = @[item1,item2];

application.shortcutItems = items;

接着在

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { }
span.s2 { color: #bb2ca2 }
span.s3 { color: #703daa }

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

里面实现点击app角标进来时对应事件的处理

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

if([shortcutItem.type isEqualToString:@"com.test.deep1"]){

//自己要做的事情

}else if ([shortcutItem.type isEqualToString:@"com.test.deep2"]){

//自己要做的事情
}

}

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; min-height: 21.0px }
span.s1 { }
span.s2 { color: #bb2ca2 }
span.s3 { color: #d12f1b }

二.在页面里面使用 (用户可以通过3D Touch手势在view上来预览一些预加载信息  流入iPhone7查看信息功能)

受限

1.在使用的界面让当前的ViewCotroller遵循UIViewControllerPreviewingDelegate协议

可在

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { }
span.s2 { color: #bb2ca2 }

- (void)viewWillAppear:(BOOL)animated {}方法里检测手机是否有3D Touch功能

- (void)viewWillAppear:(BOOL)animated {

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #703daa }
span.s1 { color: #bb2ca2 }
span.s2 { color: #000000 }
span.s3 { }
span.s4 { color: #3d1d81 }

if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {

//有3D Touch功能

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3d1d81 }
span.s1 { color: #000000 }
span.s2 { color: #bb2ca2 }
span.s3 { }
span.s4 { color: #703daa }

[self registerForPreviewingWithDelegate:(id)self sourceView:self.view];

}else{

//没有3D Touch功能
   }

}

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #78492a }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; min-height: 21.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #008400 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #703daa }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #4f8187 }
span.s1 { }
span.s2 { color: #703daa }
span.s3 { color: #bb2ca2 }
span.s4 { color: #000000 }
span.s5 { color: #3d1d81 }
span.s6 { color: #4f8187 }

# pragma mark - 3D Touch Delegate

//点击进入预览模式: 实现该协议方法

- (UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location {

// check if we're not already displaying a preview controller

if ([self.presentedViewController isKindOfClass:[PreviewViewController class]]) {

return nil;

}

PreviewViewController *previewController = [PreviewViewController new];

previewController.view.backgroundColor = [UIColor blueColor];

return previewController;

}

//继续按压进入:实现该协议

- (void)previewingContext:(id<UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit {

PreviewViewController *previewController = [PreviewViewController new];

previewController.view.backgroundColor = [UIColor redColor];

[self showViewController:previewController sender:self];

}

本文借鉴 非常感谢原作者 (他的里面部分有错误 在第一种添加 app 角标选择功能数目那有错误 用本方法没问题  它的方法会导致数目即便是1个多运行几次也会变成四个):http://www.jianshu.com/p/2920d2f74fb4

3D Touch开发的更多相关文章

  1. 3D Touch开发全面教程之Peek and Pop - 预览和弹出

    ## 3D Touch开发全面教程之Peek and Pop - 预览和弹出 --- ### 了解3D Touch 在iPhone 6s和iPhone 6s Plus中Apple引入了3D Touch ...

  2. 你想知道的3D Touch开发全在这里了

    前言 iPhone 6s和iPhone 6s Plus为多点触摸界面带来了强大的3D触摸新维度.这项新技术可以感知用户按下显示屏的深度,让他们比以往任何时候都更能使用你的应用程序和游戏.更多关于3D ...

  3. 3D Touch开发技巧的笔记

    iPhone6s以及iPhone6s plus搭载iOS9,有一个新功能叫做3D Touch,这个功能有很大的用处,关键是要会用,这给交互方式又多了一个新的选择和思考,比如说游戏中的额外控制选项.绘图 ...

  4. Peek和Pop功能开发(3D Touch开发之一)

    1.哪些设备支持3D Touch iPhone 6s/Plus.iPhone 7s/Plus.iPhone 8s/Plus.iPhone X (系统必须是iOS9或者更新的版本) 2.怎么实现Peek ...

  5. 初学3D Touch

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

  6. 3d touch 应用 2 -备用

    一.引言 在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,其原理上是增加了一个压力的感触,通过区分轻按和重按来进行不同 ...

  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 适配开发

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

随机推荐

  1. 基于libUSB的USB设备固件更新程序(下载数据)(转)

    源:基于libUSB的USB设备固件更新程序(下载数据) 本文紧接上一篇日志:基于libUSB-Win32的USB设备固件更新程序(前言),相关背景以及起因等,此处不再赘述,如感兴趣请移步. libU ...

  2. 如何解决Visual Studio2012 与此版本的Windows不兼容

    解决方案: http://www.microsoft.com/zh-CN/download/details.aspx?id=36020   下载更新

  3. 博客停更及OI退役公告

    停更&&OI退役 公告 高中OI之路就这样结束了,曾经想过回在NOI跪,APIO跪,HNOI跪却从未想过会在NOIP跪! 没办法自己作死啊,CCF感觉还是很良心的混个省一回来了,看以后 ...

  4. C++类的存储(部分可用与c的结构体)

    c++中最重要的就是类,那么给你一个类的对象,你知道它在内存中如何存储的吗?它占内存中多少个字节? 首先确定类的构成: 1,数据成员:可以是内置类型,类类型. 2,函数成员:虚函数,非虚函数 1)数据 ...

  5. 从CK+库提取标记点信息

    1.CK+动态表情库介绍 The Extended Cohn-Kanade Dataset(CK+) 下载地址 这个数据库是在 Cohn-Kanade Dataset 的基础上扩展来的,发布于2010 ...

  6. EntityFrameWork分页

    EF分页代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...

  7. bzoj3809

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3809 题目大意: Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题 ...

  8. Mysql中主从复制的原理、配置过程以及实际案例

    Mysql中主从复制的原理.配置过程以及实际案例1.什么是主从复制?原理:主从分离,什么意思呢?我们不妨画个图看看.如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Centos6 ...

  9. iOS 之 WebView 简单使用

    1. 代理 UIWebViewDelegate 2. 创建 UIWebView myWebView=[[UIWebView alloc] initWithFrame:CGRectMake(, ,sel ...

  10. 会话Cookie及session的关系(Cookie & Session)

    会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...