3D Touch简单使用

PS:只是对通过APP Icon的按压快速进入页面的使用说明,无其它干货!


在后台模式时通过3D Touch进入程序会执行application:performActionForShortcutItem:completionHandler方法,干掉进程后直接通过3D Touch不会执行上面的方法,而在程序启动方法application:didFinishLaunchWithOptions中执行,参考其它Demo时没发现这个问题,不知道是不是坑,先在此Mark一下.
添加shortcutItem有静态和动态两种设置方法,以下是用code动态添加的,因为在plist文件中添加很痛苦,没代码来的快.最后附了点plist文件中的设置参数,有兴趣的可以瞧瞧.
废话到此结束,上代码

代码动态添加

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    if (application.shortcutItems.count == 0) {
        [self configShortCutItems];
    }
    //通过点击3D T的shortcutItem进入时(非后台模式进入),此value不为nil
    UIApplicationShortcutItem *shortItem = launchOptions[UIApplicationLaunchOptionsShortcutItemKey];
    if (shortItem) {
        //我们项目里此处如果不延时调用的话,某些东西加载不出来
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [self handleShortcutItem:shortItem];
        });
        return NO;
    }
    return YES;
}

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{
    [self handleShortcutItem:shortItem];
}

- (void)configShortCutItems
{
    if (SystemVersion() >= 9.0f) {
        UIMutableApplicationShortcutItem *item1 = [[UIMutableApplicationShortcutItem alloc] initWithType:@"1" localizedTitle:@"打开上次阅读" localizedSubtitle:nil icon:[UIApplicationShortcutIcon iconWithTemplateImageName:@"lastRead"] userInfo:nil];
        UIMutableApplicationShortcutItem *item2 = [[UIMutableApplicationShortcutItem alloc] initWithType:@"2" localizedTitle:@"重磅限免" localizedSubtitle:nil icon:[UIApplicationShortcutIcon iconWithTemplateImageName:@"limitedFree"] userInfo:nil];
        UIMutableApplicationShortcutItem *item3 = [[UIMutableApplicationShortcutItem alloc] initWithType:@"3" localizedTitle:@"签到" localizedSubtitle:nil icon:[UIApplicationShortcutIcon iconWithTemplateImageName:@"signIn"] userInfo:nil];
        [UIApplication sharedApplication].shortcutItems = @[item1, item2, item3];
    }
}

- (void)handleShortcutItem:(UIApplicationShortcutItem *)shortcutItem
{
    NSString *type = shortcutItem.type;
    switch (type.integerValue) {
        case 1: //打开上次阅读
        {
            //要进行的操作
            ...
        }
            break;
        case 2: //重磅限免
        {
            
        }
            break;
        case 3: //签到
        {
            
        }
            break;
    }
}

info.plist静态设置shortcutItem的方法

<key>UIApplicationShortcutItems</key>
    <array>
        <dict>
            <key>UIApplicationShortcutItemTitle</key>
            <string>标题(显示的标题)</string>
            <key>UIApplicationShortcutItemType</key>
            <string>type是自己设置的字符串,比如字符串1,2...</string>
            <key>UIApplicationShortcutItemIconType</key>
            <string>UIApplicationShortcutIconTypeLocation (API中有好几种)</string>
            <key>UIApplicationShortcutItemIconFile</key>
            <string>图片名字</string>
            <key>UIApplicationShortcutItemUserInfo</key>
            <dict>
                <key>firstShortcutKey</key>
                <string>firstShortcutValue</string>
            </dict>
        </dict>
    </array>
QQ20160114-0@2x.png
QQ20160114-0@2x.png

Icon尺寸:

  • 35x35 (1x)
  • 70x70 (2x)
  • 105x105 (3x)

参考:
Adding 3D Touch Quick Actions
iOS9系列专题一3D Touch
3DTouchSample

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 关于这篇文章 由于iPhone 6S发布不到一年的时间,很多新特性、新技术还未普遍,不管是3D Touch的...
    Tangentw阅读 10,090评论 8 18
  • 1.简单的介绍一下3D Touch 3D Touch的触控技术,被苹果称为新一代多点触控技术。其实,就是此前在Ap...
    Camille_chen阅读 14,184评论 19 33
  • 专著:http://www.jianshu.com/p/3443a3b27b2d 1.简单的介绍一下3D Touc...
    violafa阅读 4,650评论 1 0
  • 3D Touch介绍 从iPhone 6s开始,产品都添加了一项硬件属性,叫做3D touch。作为屏幕的一部分,...
    歪笔书生_阅读 3,858评论 0 0
  • 前几天就有爆出何洁、赫子铭离婚的新闻,随后被一一否认。直到昨晚,何洁深夜发博称: 沉默,因为不想成为小丑的同谋;隐...
    洛小娅阅读 1,787评论 0 1

友情链接更多精彩内容