3DTouch桌面快捷方式

原创 2016年03月17日 10:08:34

3DTouch是iOS9,iPhone6s上新加的功能,之前只是一直有了解,但是由于设备的原因并没有很好的研究,后来购入一台6S所以就迫不及待的尝试了一下。
申明Quick Action有两种方式:静态和动态,静态是在plist文件中申明,动态则是在代码中注册,系统支持两者同时存在。但是系统限制每个app最多显示4个快捷图标,包括静态和动态。
静态的方法加入:
即在plist文件中加入UIApplicationShortcutItems标签,标签类型为NSArray,根据需要可以添加四个不同的子标签。类型为NSDictionary。然后加如所需键值对:
必填项(下面两个键值是必须设置的):UIApplicationShortcutItemType 这个键值设置一个快捷通道类型的字符串
选填项(下面这些键值不是必须设置的):UIApplicationShortcutItemSubtitle 设置标签的副标题UIApplicationShortcutItemIconType 设置标签Icon类型UIApplicationShortcutItemIconFile 设置标签的Icon文件,可以通过这个键值设置自定义文件。
这里写图片描述
动态方法加入:
在AppDelegate中加入以下方法:

- (void)configShortCutItems {
    NSMutableArray *shortcutItems = [NSMutableArray array];

    UIApplicationShortcutItem *item1 = [[UIApplicationShortcutItem alloc]initWithType:@"YPYD.UITouchText.home" localizedTitle:@"首页" localizedSubtitle:nil icon:[UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeHome] userInfo:nil];

    UIApplicationShortcutItem *item2 = [[UIApplicationShortcutItem alloc]initWithType:@"YPYD.UITouchText.search" localizedTitle:@"购物车" localizedSubtitle:nil icon:[UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeSearch]
                                                                             userInfo:nil];
    [shortcutItems addObject:item2];
    [shortcutItems addObject:item1];
    [[UIApplication sharedApplication] setShortcutItems:shortcutItems];
}

判断手机是否可以用3Dtouch:

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler
{
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0 &&self.window.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable)
    {
        NSLog(@"你的手机支持3D Touch!");
        YPYDNetCountManager * sharedNetCountManager = [YPYDNetCountManager sharedNetCountManager];
        sharedNetCountManager.applicationShortcutItemTitle = shortcutItem.type;


        //首页
        if([shortcutItem.type isEqualToString:@"YPYD.UITouchText.home"])
        {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"YPYD.UITouchText.home" object:nil userInfo:nil];
        }
        //搜索商品
        if([shortcutItem.type isEqualToString:@"YPYD.UITouchText.search"])
        {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"YPYD.UITouchText.search" object:nil userInfo:nil];
        }
        //购物车
        if([shortcutItem.type isEqualToString:@"YPYD.UITouchText.cart"])
        {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"YPYD.UITouchText.cart" object:nil userInfo:nil];
        }
        //我的U
        if([shortcutItem.type isEqualToString:@"YPYD.UITouchText.myU"])
        {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"YPYD.UITouchText.home" object:nil userInfo:nil];
        }
    }
    else
    {
        NSLog(@"你的手机暂不支持3D Touch!");
    }
}

这个时候通过屏幕按压已经可以出现快捷按钮了,最后就是给相应的按钮添加功能。我这里只是做了简单的跳转功能,所以在tabBarController中加入以下方法实现界面的跳转。
先添加监听方法,用来监听事件的点击事件:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationShortcutItemResponse) name:@"YPYD.UITouchText.home" object:nil];

监听的方法:

- (void)applicationShortcutItemResponse
{
    YPYDNetCountManager * sharedNetCountManager = [YPYDNetCountManager sharedNetCountManager];

    //首页
    if([ sharedNetCountManager.applicationShortcutItemTitle isEqualToString:@"YPYD.UITouchText.home"])
    {
        self.tabBarController.selectedIndex = 0;
        [[NSNotificationCenter defaultCenter] postNotificationName:@"UITouchText.home" object:nil userInfo:nil];
    }
    //搜索商品
    if([ sharedNetCountManager.applicationShortcutItemTitle isEqualToString:@"YPYD.UITouchText.search"])
    {
        self.self.tabBarController.selectedIndex = 2;

    }
    //购物车
    if([ sharedNetCountManager.applicationShortcutItemTitle isEqualToString:@"YPYD.UITouchText.cart"])
    {
        self.self.tabBarController.selectedIndex = 3;
    }
    //我的 U
    if([ sharedNetCountManager.applicationShortcutItemTitle isEqualToString:@"YPYD.UITouchText.myU"])
    {
        self.self.tabBarController.selectedIndex = 4;
    }
}

现在就可以实现点击快捷图标跳转相应控制器了。总得来说接入很方便,欢迎大家 尝试。
效果图:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xa846213981/article/details/50911187

3DTouch桌面快捷方式

3DTouch是iOS9,iPhone6s上新加的功能,之前只是一直有了解,但是由于设备的原因并没有很好的研究,后来购入一台6S所以就迫不及待的尝试了一下。 申明Quick Action有两种...
  • xa846213981
  • xa846213981
  • 2016年03月17日 10:08
  • 590

浅谈3D Touch(1) -- Home screen quick action

1. 背景: 随着iOS9 和 iPhone 6s的普及,苹果官方提供的3D Touch将带给我们更好玩,更便捷的操作习惯,桌面快捷菜单可谓是3D Touch功能中最实用的一个,有了它,用户不再需要...
  • jianandjan
  • jianandjan
  • 2015年11月30日 13:17
  • 613

Android Launcher3 禁止用户拖动图标创建文件夹,控制拖动图标到另一个图标时的动画效果

禁止用户拖拽应用图标创建文件夹,需要在Workspace中的onDrop()方法的createUserFolderIfNecessary方法注释掉。这样就不再创建文件夹。 // If the ...
  • cgt_cgt
  • cgt_cgt
  • 2017年07月28日 17:37
  • 533

iOS新特性实现3DTouch开发

好久没有写过文章了,今天就给大家带来一篇比较简单的开发教程吧!目的是为了让大伙能够避开那些不必要的坑,快速高效的实现功能。今天呢来和大家讲一下iOS9的新特性3DTouch开发(iOS10都已经出了B...
  • shenjie12345678
  • shenjie12345678
  • 2016年07月27日 11:00
  • 1978

OC - 3D Touch(1)

3D Touch 是 iPhone6S 上独有的一个功能,在屏幕下方增加了压力感应,从而可以检测平时手指按压屏幕的力度,然后系统可以识别到压力强度,再给出相应的选项。效果类似于以下: 创建按钮的方式...
  • zww1984774346
  • zww1984774346
  • 2016年03月07日 17:24
  • 379

iOS开发--3D Touch的基本使用

1.桌面快捷菜单项 效果如图: 桌面快捷菜单 点击之后的效果如图: 点击桌面快捷菜单的效果 接下来看下具体实现: 1).在-application:...
  • Leemin_ios
  • Leemin_ios
  • 2017年08月13日 18:16
  • 156

iOS 3D Touch开发tableview页面内的使用

上一次写了3DTouch在app icon的使用,时间隔了那么久,其实我早就写完了····就是一直忙着没时间 发表文章分享,也是对不住了~ 这篇文章讲的是3DTouch在页面内的使用  首先声明  c...
  • werctzzz
  • werctzzz
  • 2015年12月30日 10:56
  • 1870

iOS 3D Touch开发 很良心的版本原创!

之前一直在忙着维护项目,偶然的一天闲着玩手机玩到3Dtouch,看着效果挺不错的 于是就尝试着搜索了一下相关的文案,结果除了官网给的全英文api意外国内的基本都 是互相抄袭,我搜了37篇文章,29篇相...
  • werctzzz
  • werctzzz
  • 2015年12月17日 09:51
  • 3251

Android Launcher桌面3D实现和原理分析

by: andy.xie   转载请注明出处 http://blog.csdn.net/xiexh0921/article/details/7929847 1,概述: Launcher桌面由Wor...
  • xiexh0921
  • xiexh0921
  • 2012年08月31日 17:04
  • 2699

苹果的新技术3D Touch与以往的“长按屏幕”有何区别?

本质区别: 长按 = (x, y) + 时间; 3D Touch = (x, y, z); 举个例子:题主想象手握一支沾了墨的毛笔, 1、你用笔尖轻轻在纸上一点,会出现一个点; 2、你同样的力度把笔尖...
  • wishfly
  • wishfly
  • 2015年09月13日 23:07
  • 1270
收藏助手
不良信息举报
您举报文章:3DTouch桌面快捷方式
举报原因:
原因补充:

(最多只允许输入30个字)