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,敬请期待



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

IOS实现3DTouch功能

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

IOS 3D Touch 开发教程

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

iOS ----新特性 3DTouch 开发教程全解(含源码)

本文主要讲解3DTouch各种场景下的开发方法,开发主屏幕应用icon上的快捷选项标签(Home Screen Quick Actions),静态设置UIApplicationShortcutItem...
  • iotjin
  • iotjin
  • 2016-04-25 21:53:25
  • 570

3D Touch开发

3D Touch的触控技术,被苹果称为新一代多点触控技术。其实,简单的说3D Touch就是用力按压,通过3D Touch增加了一组手势交互方式。 3D Touch主要常见的使用: 1:Home...
  • u013602835
  • u013602835
  • 2017-01-12 10:22:19
  • 142

iOS <em>3D</em> <em>Touch开发</em>基本功能

iOS <em>3D</em> <em>Touch开发</em>基本功能 2015-10-20 上传大小:135KB <em>3DTouch</em> 实现iOS新功能<em>3D</em> Touch的基本功能,包括点击icon图标弹出的标签,及内部ViewController点击触发的预览...
  • 2018年04月08日 00:00

iOS开发之3DTouch集成

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

ios模拟器展示3D Touch

With Xcode 7.0 you must develop on a device that supports 3D Touch. Simulator in Xcode 7.0 does not ...
  • u010972075
  • u010972075
  • 2015-11-05 15:09:47
  • 983

iOS9-3D Touch开发

iOS9 3D Touch
  • u012361458
  • u012361458
  • 2016-06-08 11:58:27
  • 92

3DTouch的开发教程

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

IOS 实现3D Touch在tableView的简单应用

3D Touch正在改变用户的操作习惯,体验了下,确实挺酷。  做为个开发者,一定想知道如何才能集成这样操作功能。 话不多说,直接上代码(因为3D Touch的开发资料网止已经太多了,不说了) ...
  • u010277446
  • u010277446
  • 2016-03-16 10:25:33
  • 758
收藏助手
不良信息举报
您举报文章:iOS 3D Touch开发 很良心的版本原创!
举报原因:
原因补充:

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