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

原创 2015年12月17日 09:51:12

之前一直在忙着维护项目,偶然的一天闲着玩手机玩到3Dtouch,看着效果挺不错的

于是就尝试着搜索了一下相关的文案,结果除了官网给的全英文api以外国内的基本都

是互相抄袭,我搜了37篇文章,29篇相似度惊人,而且仅有一个技术网的给出来如何

利用3Dtouch跳转指定页面(还是没处理好的模态)

那今天就来给大家看看3Dtouch的构成

首先说说官方版本的,咱们在plist 文件里面添加,如下:


然后编译,在6s上效果如下:


这就弄好了~挺快的是不?但是这样的做法还是有局限性~那么我们该怎么做呢?

接下来第二个方法:手动创建

- (void)creatIconTouch
{
    // set item image
    UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"QR_icon"];
    UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"search"];
    UIApplicationShortcutIcon *icon3 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"refund"];
    UIApplicationShortcutIcon *icon4 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"help_icon"];
    
    // create several (dynamic) shortcut items
    UIMutableApplicationShortcutItem *item = [[UIMutableApplicationShortcutItem alloc]initWithType:@"pay" localizedTitle:@"決済" localizedSubtitle:@"支付" icon:icon1 userInfo:nil];
    UIMutableApplicationShortcutItem *item1 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"search" localizedTitle:@"照会" localizedSubtitle:@"查询" icon:icon2 userInfo:nil];
    UIMutableApplicationShortcutItem *item2 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"refound" localizedTitle:@"返金" localizedSubtitle:@"退款" icon:icon3 userInfo:nil];
    UIMutableApplicationShortcutItem *item3 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"help" localizedTitle:@"ヘルプ" localizedSubtitle:@"帮助" icon:icon4 userInfo:nil];
    
    // add all items to an array
    NSArray *items = @[item,item1, item2, item3];
    
    // add the array to our app
    [UIApplication sharedApplication].shortcutItems = items;
}
这个方法是要放在APPdelegate里面,在didfinishlaunching里面调用就行,效果如下:

(因为是公司项目对外的logo就不宜放出了)


这些创建显示点击都没问题了,但发现没?点击的时候只能进去首页,那接下来大家来看看怎么调到指定页

在iOS9.0以后appdelegat里面有专用的方法:

#pragma mark - 3DTouch Action
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {
    // react to shortcut item selections
    NSLog(@"点击了 %@.", shortcutItem.localizedTitle);
}
这就是点击事件的方法,到了这一步大家不是说不就跳转呗,写一个模态过nav push进去啊。

no~其实每个开发者都知道,只不过在这里会迷糊,

<span style="font-size:14px;">ViewController * VC = [[ViewController alloc]init];
    Nav = [[UINavigationController alloc]initWithRootViewController:VC];
    [self.window setRootViewController:Nav];</span>
一般来说都这么创建的,然后你就想 self.window.rootViewController.navigationController push 这么跳转?(如果说你的整个项目是模态的话,随意你怎么模态)运行原理来说这样是行不通的,就在你添加的时候,把上面提到的nav设置成属性,按照代码执行顺序,Nav已经是你的window 的rootVC了~所以跳转的时候,如下:(记得判断你的item)

if ([shortcutItem.localizedTitle isEqualToString:@"決済"]) {
            Payment01Controller * vc = [[Payment01Controller alloc]init];
            [Nav pushViewController:vc animated:YES];
        }

大功告成,慢慢的玩去吧~之后我会详细的写一篇页面内的3Dtouch,敬请期待



版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS新特性实现3DTouch开发

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

IOS 3D Touch 开发教程

前一阵子伴随着苹果发布新产品iPhone6s 和 IOS9新系统,一系列关于硬件和软件的新功能、新特性逐渐进入iPhone用户的视线。这次我们就来讲讲传闻已久的3D Touch。          当...
  • He_jiabin
  • He_jiabin
  • 2016年03月02日 12:17
  • 2909

iOS 3DTouch 开发

看了网上很多贴,但是感觉对于有些人来说太过婉转了,所以我就来个简单粗暴的 1,设置静态标签 首先要在info.plist 里面添加键值    UIApplicationShortcutItemTy...
  • pk_sir
  • pk_sir
  • 2016年03月14日 10:49
  • 384

iOS 3D Touch开发基本功能

  • 2015年10月20日 21:10
  • 135KB
  • 下载

IOS实现3DTouch功能

赶需求期间,想着别人应用都搞起3DTouch功能了,咱也来装逼一会,凸显下逼格。 废话少说,先搜索了前人的热心奉献,自己再动手丰衣足食,下面归纳总结下。 首先,想要体验3DTouch功能,必须至少得是...
  • a416863220
  • a416863220
  • 2016年04月22日 10:35
  • 8624

iOS开发之3DTouch集成

静态添加入口标签在info.plist中添加如图所示 各项都代表的意思首先是UIApplicationShortcutItems,他是一个数组类型,数组中的每一个元素表示一个入口标签。然后是Item...
  • sinat_30162391
  • sinat_30162391
  • 2016年04月08日 13:51
  • 1712

iOS9 3DTouch开发 知识点详解

本篇文章介绍3D Touch功能, 大体介绍一下: 下篇为大家提供一个3DTouch的Demo 增强版的Force Touch(压力触控)技术,Force Touch之前被应用在于Apple Wat...
  • qq_25475307
  • qq_25475307
  • 2015年10月29日 19:35
  • 950

3DTouch的开发教程

一、系统home界面弹出一个列表 #import "AppDelegate.h" #import "ViewController.h" @interface AppDelegate () ...
  • A_Running_Pig
  • A_Running_Pig
  • 2016年11月18日 14:15
  • 107

IOS实现3DTouch功能

赶需求期间,想着别人应用都搞起3DTouch功能了,咱也来装逼一会,凸显下逼格。 废话少说,先搜索了前人的热心奉献,自己再动手丰衣足食,下面归纳总结下。 首先,想要体验3DTouch功能,必须至少得是...
  • a416863220
  • a416863220
  • 2016年04月22日 10:35
  • 8624

iOS 3DTouch 代码实现

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc...
  • chenzheiu1210
  • chenzheiu1210
  • 2016年10月19日 14:18
  • 414
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 3D Touch开发 很良心的版本原创!
举报原因:
原因补充:

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