3D Touch开发
一.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开发的更多相关文章
- 3D Touch开发全面教程之Peek and Pop - 预览和弹出
## 3D Touch开发全面教程之Peek and Pop - 预览和弹出 --- ### 了解3D Touch 在iPhone 6s和iPhone 6s Plus中Apple引入了3D Touch ...
- 你想知道的3D Touch开发全在这里了
前言 iPhone 6s和iPhone 6s Plus为多点触摸界面带来了强大的3D触摸新维度.这项新技术可以感知用户按下显示屏的深度,让他们比以往任何时候都更能使用你的应用程序和游戏.更多关于3D ...
- 3D Touch开发技巧的笔记
iPhone6s以及iPhone6s plus搭载iOS9,有一个新功能叫做3D Touch,这个功能有很大的用处,关键是要会用,这给交互方式又多了一个新的选择和思考,比如说游戏中的额外控制选项.绘图 ...
- Peek和Pop功能开发(3D Touch开发之一)
1.哪些设备支持3D Touch iPhone 6s/Plus.iPhone 7s/Plus.iPhone 8s/Plus.iPhone X (系统必须是iOS9或者更新的版本) 2.怎么实现Peek ...
- 初学3D Touch
引言 With iOS 9, new iPhone models add a third dimension to the user interface. A user can now press y ...
- 3d touch 应用 2 -备用
一.引言 在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,其原理上是增加了一个压力的感触,通过区分轻按和重按来进行不同 ...
- iOS 3D Touch功能 3 -备
新的触摸体验——iOS9的3D Touch 一.引言 二.在模拟器上学习和测试3D Touch 附.SBShortcutMenuSimulator的安装和使用 三.3D Touch的主要应用 四.3D ...
- iOS 3D Touch功能
新的触摸体验——iOS9的3D Touch 一.引言 在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,其原理上是增加了 ...
- iOS 3D Touch 适配开发
3D Touch的主要应用 文档给出的应用介绍主要有两块: 1.A user can now press your Home screen icon to immediately access fun ...
随机推荐
- 功率W与dBm的对照表及关系(转)
源:功率W与dBm的对照表及关系 功率W与dBm的对照表 dBm Watts dBm Watts 0 ...
- 无锁同步-C++11之Atomic和CAS
1.概要 本文是无锁同步系列文章的第一篇,主要探讨C++11中的Atomic. 我们知道在C++11中引入了mutex和方便优雅的lock_guard.但是有时候我们想要的是性能更高的无锁实现,下面我 ...
- Cookie 简单使用记录浏览记录
ItemsDAO.java package dao; import java.util.* ; import java.sql.* ; import util.DBHelper; import ent ...
- 轻轻的扩展了一下IEnumerable<T>
今天用EF写东西玩,觉得IEnumerable里面除了where().select(),是不是能添加点其他方法呢. 想做就做,F12到方法定义: public static IEnumerable&l ...
- osx c++连接mysql
最近想尝试一下使用c++连接mysql数据库.使用封装过后的mysql库mysql++访问mysql数据库更加简单,下述讲述的是如何在osx上搭建连接mysql的环境. 首先需要安装mysql++,感 ...
- Linux FTP 服务器配置简单说明
一. FTP 说明 linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp ...
- 位运算,算术、逻辑运算详解-java篇
/** * 功能: * 位运算符,原码.反码.补码规则: * 1.二进制的最高位是符号位:0表示正数,1表示负数 * 2.正数的原码.反码.补码都一样 * 3.负数的反码=它的原码符号位不变,其他位取 ...
- Delphi中String类型原理介绍
Delphi中字符串的操作很简单,但幕后情况却相当复杂.Pascal传统的字符串操作方法与Windows不同,Windows吸取了C语言的字符串操作方法.32位Delphi中增加了长字符串类型,该类型 ...
- Mac下使用Brew搭建PHP(LNMP/LAMP)开发环境
Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...
- Firebug及YSlow简介与使用图文详解
Firebug本是Firefox浏览器下一个出色的网页设计插件,随着浏览器的发展,Firebug也推出了支持IE.Opera.Chrome的Firebug Lite.凭借Firebug的出色代码调试功 ...