3D Touch的简单使用

作者: 晓龙歌 | 来源:发表于2016-08-17 09:53 被阅读137次

这货其实很简单,我就简单做个用法的解析。

首先,你要使用的话,你得在info.plist里面加入部分键值对,如下:

1.在info.plist里面配置所有items

UIApplicationShortcutItems

//山地 touch选项的数组(可以在info.plist里面写,也可以在Appdelegate里面用代码设置)

UIApplicationShortcutItemIconType//item的图标(貌似只能是系统的样)

UIApplicationShortcutIconTypeSearch

UIApplicationShortcutItemTitle

订单筛选

UIApplicationShortcutItemType//自定义的item的类型(相当于一个cell的identifier),方便判断点击的那个item

$(PRODUCT_BUNDLE_IDENTIFIER).First

2.在info.plist里面配置一个item,在Appdelegate里面用代码设置剩余的items

//先在info.plist里面设置一个

//定义一个@property(nonatomic,strong)UIApplicationShortcutItem*currentShortItem;  /*当前点击Touch Item*/

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

// Override point for customization after application launch.

BOOLresult =YES;

//系统版本适配

if(IOS_VERSION<9.0)returnresult;

//判断是否是从shortitem启动的程序

if(launchOptions[@"UIApplicationLaunchOptionsShortcutItemKey"]) {

_currentShortItem= launchOptions[@"UIApplicationLaunchOptionsShortcutItemKey"];

//这个返回值很重要、返回no,不会再调用performActionForShortcutItem这个回调方法

//result =NO;

}

//判断是否已经创建了shortitem

NSArray*items = [UIApplicationsharedApplication].shortcutItems;

if(items.count==0) {

[selfcreateShortIcon];

}

returnresult;

}

//@TODO:创建其他的items

-(void)createShortIcon{

UIApplicationShortcutIcon*shortIcon1 = [UIApplicationShortcutIconiconWithType:UIApplicationShortcutIconTypeSearch];

UIApplicationShortcutItem*shortItem1 = [[UIApplicationShortcutItemalloc]initWithType:[NSStringstringWithFormat:@"%@.First",BundleId]localizedTitle:@"FirstItem"localizedSubtitle:nilicon:shortIcon1userInfo:nil];

UIApplicationShortcutIcon*shortIcon2=[UIApplicationShortcutIconiconWithType:UIApplicationShortcutIconTypeCompose];

UIApplicationShortcutItem*shortItem2=[[UIApplicationShortcutItemalloc]initWithType:[NSStringstringWithFormat:@"%@.Second",BundleId]localizedTitle:@"SecondItem"localizedSubtitle:nilicon:shortIcon2userInfo:nil];

[[UIApplicationsharedApplication]setShortcutItems:@[shortItem1,shortItem2]];

}

3.说完了定义些,先在来处理点击后的事情:

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

//处理shortitem事件

if([shortcutItem.typeisEqualToString:[NSStringstringWithFormat:@"%@.First",BundleId]]) {

NSLog(@"First Item---");

}elseif([shortcutItem.typeisEqualToString:[NSStringstringWithFormat:@"%@.Second",BundleId]]){

NSLog(@"Second Item---");

}

}

欧拉!我没有吹塞,就是这样简单!现在就只需要试试了!!!是不是特别激动?当然你得有个6s以上的iPhone。

哎呀!其实模拟器也可以的,当然你得安装一个插件哈:传送

后继更新:

现在加上在VC中使用3D Touch的方法。

在使用它之前呢,我们得将它和长按手势区分开,我们在初始化的时候给当前VC做一个检测:

//检测页面是否处于3DTouch状态 可以在知道它处于开启状态时将长按手势什么的禁止掉(我一般在viewWillAppear里面调用该函数)

- (void)check3DTouch{

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

[self registerForPreviewingWithDelegate:self sourceView:self.view];

NSLog(@"3D Touch 开启");

}else{

}

}

然后我们在使用的VC里面实现<UIViewControllerPreviewingDelegate>协议,以及实现协议函数

//重按时显示出的预览界面

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

//直接显示预览界面,这里可以高度自定义

return self.vc;

}

//继续用力按执行什么操作,这里是将预览界面展示出来

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

[self showViewController:self.vc sender:self];

}

最后一步就是你得在你弹出的那个预览VC里面设置上滑显示那些操作按钮:

//重按显示预览界面时,向上滑动出现的菜单选择、一定要在

//-(UIViewController *)previewingContext:(id)previewingContext viewControllerForLocation:(CGPoint)location

//回调返回的UIViewController中实现这个方法,不然无法显示菜单选项

-(NSArray> *)previewActionItems{

UIPreviewAction *action1 = [UIPreviewAction actionWithTitle:@"分享" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {

//点击按钮的响应函数

}];

UIPreviewAction*action2=[UIPreviewActionactionWithTitle:@"收藏"style:UIPreviewActionStyleDefaulthandler:^(UIPreviewAction*_Nonnullaction,UIViewController*_NonnullpreviewViewController){

//点击按钮的响应函数

}];

return @[action1, action2];

}

这样就实现了完整的3D Touch的使用,简单快捷,方便实例。

相关文章

  • 3D touch

    3D Touch 简单应用 - 简书 3D Touch学习笔记 - 简书

  • 3D Touch简单使用

    PS:只是对通过APP Icon的按压快速进入页面的使用说明,无其它干货! 在后台模式时通过3D Touch进入程...

  • 3D Touch的简单使用

    这货其实很简单,我就简单做个用法的解析。 首先,你要使用的话,你得在info.plist里面加入部分键值对,如下:...

  • 3D Touch 进阶

    说是进阶,其实是把未讲完的3D Touch用法讲完。除了最简单的Qucik Action,3D Touch最常见的...

  • #3DTouch

    3D touch介绍 3D touch 是ios9+、iphone6s+的新功能,简单的说3Dtouch就是用力按...

  • 3D Touch 开发

    一. 3D Touch开发 官方文档给出的应用介绍主要有两块: 简单来说 3d touch 就是通过区分轻按和...

  • iOS 3D Touch打开控制器(类似微信聊天样式)

    使用过iPhone6s以上机型的同学们肯定使用过3D Touch的功能,随之而来的就是各种3D Touch的相关应...

  • iOS 3D Touch 开发

    1 3D Touch 的三大模块 在我们的app中使用3D Touch功能,主要分一下三个模块: 1.1 Home...

  • 关于3D Touch 的基本使用

    我对于3d touch 这个功能也没有什么研究,只是项目里面要求实现一个简单的touch 功能! touch AP...

  • iOS 3DTouch 开发

    概述 iOS10系统登录中国,在系统中对3D Touch的使用需求更频繁,所以对iOS9中便引入的3D Touch...

网友评论

    本文标题:3D Touch的简单使用

    本文链接:https://www.haomeiwen.com/subject/ggrmsttx.html