美文网首页技术文档
iOS--3DTouch研究

iOS--3DTouch研究

作者: 哈利波特会魔法 | 来源:发表于2018-01-26 10:57 被阅读5次

前言:

之前没有接触过3DTouch,感觉老高大上了,上个月研究了一下,发现so easy,(对,妈妈再也不用我的学习了)。这个功能是需要在6S以上的设备才有的,用力按压APP图标,会弹出快捷方式,以供用户操作。体现形式主要有2种:
1:用力按压APP图标
2:用力按压APP内的界面,如一个按钮
具体开发中具体使用,在这里呢,简单给大家介绍第一种

一.集成--有2种方法

1.info.plist文件配置

第一步:在info.plist添加属性值
4656F21AD29DA804475D3487E36FDBCE.png

具体参数看不清楚的请看下面:
UIApplicationShortcutItemTitle
UIApplicationShortcutItemSubtitle
UIApplicationShortcutItemIconFile
UIApplicationShortcutItemType

第二步:在APPDelegate中添加代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    UITabBarController *tab = [UITabBarController new];
    NSMutableArray *controllers = [NSMutableArray array]; 
    FirstViewController *firVC = [[FirstViewController alloc] init];
    UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:firVC];
    nav1.title = @"111111";
    SecondViewController *secVC = [[SecondViewController alloc] init];
    UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:secVC];
    nav2.title = @"22222";
    [controllers addObject:nav1];
    [controllers addObject:nav2];
    tab.viewControllers = controllers;
    self.window.rootViewController = tab;
    return YES;
}
//实现代理方法,通过绑定的标签type来实现
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{
    UITabBarController *tab = (UITabBarController *)self.window.rootViewController;
    UINavigationController *currentNav = [tab selectedViewController];
    
if([shortcutItem.type isEqualToString:@"ONE"]){
        FirstViewController *vc = [[FirstViewController alloc] init];
        vc.title = @"第一个";
        [currentNav pushViewController:vc animated:YES];
    }else if ([shortcutItem.type isEqualToString:@"TWO"]){
        SecondViewController *vc = [[SecondViewController alloc] init];
        vc.title = @"第二个";
        [currentNav pushViewController:vc animated:YES];
    }
}

2.在APPDelegate中添加代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    ViewController *vc = [[ViewController alloc] init];
    vc.title = @"首页";
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
    self.window.rootViewController = nav;
    [self setUpTouch:application];
    return YES;
}
- (void)setUpTouch:(UIApplication *)application
{
    /**
     type 该item 唯一标识符
     localizedTitle :标题
     localizedSubtitle:副标题
     icon:icon图标 可以使用系统类型 也可以使用自定义的图片
     userInfo:用户信息字典 自定义参数,完成具体功能需求
     */
    //    UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"标签.png"];
    UIApplicationShortcutIcon *cameraIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeLove];
    UIApplicationShortcutItem *cameraItem = [[UIApplicationShortcutItem alloc] initWithType:@"ONE" localizedTitle:@"拍照" localizedSubtitle:@"副标题" icon:cameraIcon userInfo:nil];
    UIApplicationShortcutIcon *shareIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeShare];
    UIApplicationShortcutItem *shareItem = [[UIApplicationShortcutItem alloc] initWithType:@"TWO" localizedTitle:@"分享" localizedSubtitle:@"副标题" icon:shareIcon userInfo:nil];
    /** 将items 添加到app图标 */
    application.shortcutItems = @[cameraItem,shareItem];
}

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{
    UINavigationController *nav = (UINavigationController *)self.window.rootViewController;
    
    if([shortcutItem.type isEqualToString:@"ONE"]){
        UIViewController *vc = [[UIViewController alloc] init];
        vc.title = @"第一个";
        vc.view.backgroundColor = [UIColor yellowColor];
        [nav pushViewController:vc animated:YES];
    }else if ([shortcutItem.type isEqualToString:@"TWO"]){
        UIViewController *vc = [[UIViewController alloc] init];
        vc.title = @"第二个";
        vc.view.backgroundColor = [UIColor grayColor];
        [nav pushViewController:vc animated:YES];
    }
}

二.效果

点击第一个图标,跳到第一个界面


D858F6D37F047A369CD832AF43CF0550.jpg

相关文章

  • iOS--3DTouch研究

    前言: 之前没有接触过3DTouch,感觉老高大上了,上个月研究了一下,发现so easy,(对,妈妈再也不用我的...

  • 研究研究

    爱死佳爷了,龙哥虽然很爆很污但很率直很聪明,事半功倍的事还是要多做一些,我们就是要一路开挂,研究才是硬道理。 芥末...

  • 研究要研究之事

    提到做研究,我总是惶恐的。因为不清楚,不敢轻易开口。在这么多天的看书研究和交流之后,虽然粗粗明白了一些,...

  • 研究

    许岑关于研究原汁原味的分享给大家,仁者见仁,智者见智。不仅用于研究英文,主要是研究的方法论和实操手册,实...

  • 研究

    文/小来 《研究》 我一直想着 能否用最上好的材料 把我的肚子 打造成一口不锈钢锅 以便来防止那些 会把我肠胃弄疼的水货

  • 研究

  • 研究

    要对每一个你身边的人,包括上司和下属进行研究,研究适合他(她)们的相处模式。 有一种沟通模式看来是有效的:从推动工...

  • 研究

    (中国人在国外生活二十年后重拾汉语)探究汉语遗忘规律

  • 研究

    中国手语在汉语初级课堂中的应用可行性

  • 研究

    行业研究下面 分宏观 策略 行业 前两个门槛高 行业研究思路 可以看新闻 看标杆企业 专业词汇 盈利路径 看卖方研...

网友评论

    本文标题:iOS--3DTouch研究

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