美文网首页学习iOS技术iOSiOS
iOS9新特性之实现3D Touch就是So easy(更新Sw

iOS9新特性之实现3D Touch就是So easy(更新Sw

作者: Bison | 来源:发表于2015-10-19 13:23 被阅读7394次
3D_Touch.jpg
10月19号,周末,起床去吃早餐,吃完回来顺便去沃尔玛逛逛,把晚上的菜给买了,逛着逛着就来到了卖苹果手机的柜台,可能职业病吧,😄,随手玩了下最新出来的iPhone6s,看下它新出来的功能3D Touch,简单的使用了下挺难按出来的😓,貌似要找找手感,现在主流的app 已经支持此功能了,于是想实现下次功能的想法在脑海里挥之不去,最大的遗憾是只能在iPhone6s以上机型上使用,貌似其他手机可以通过越狱实现这一有趣的功能。题外话有点多了。。。。
下面我们进入正题:
在网上找了下资料,貌似很少的,只找到一篇简单介绍的
地址:http://www.jianshu.com/p/74fe6cbc542b

当然根据这篇文章的资料,很难做出这个有趣的功能,至少我是这么认为。
于是发挥出我那无敌于世的搜索功能,终于还是让我找到了突破点。
首先我们需要在Info.plist文件中加上一项

<key>UIApplicationShortcutItems</key>
    <array>
        <dict>
            <key>UIApplicationShortcutItemIconType</key>
            <string>UIApplicationShortcutIconTypeShare</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>Share</string>
            <key>UIApplicationShortcutItemType</key>
            <string>-11.UITouchText.share</string>
        </dict>
    </array>

在此讲解下其中都是些神马意思
UIApplicationShortcutItemIconType触发3D Touch时显示的图标类型
UIApplicationShortcutIconTypeShare显示分享的图标
当然肯定还可以选择其他的一些图标,在此不一一列举,因为我也才上手,不怕您笑话咱。😄
UIApplicationShortcutItemTitle显示名字的
UIApplicationShortcutItemType相当于项目中的Bundle Identifier唯一的,通过这个标示我们可以判断点相应的那一项触发相应的操作
可以多设置几个
到此Info.plist文件中我们已经设置完了,接下来我们应该咋整呢?
什么?问你们,你们居然不知道???
好吧,还是由我带领大家继续讲下一步该如何如何。。。
首先在我们AppDelegate.m中添加如下方法

OC版

- (void)application:(UIApplication *)application 
performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem
 completionHandler:(void(^)(BOOL succeeded))completionHandler{

}

Swift版

func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {

}

关于这个方法是干嘛的?在此大家应该都清楚了吧?
对没错,就是用来处理我们这个3D Touch触发事件的
我的Demo是这么写的,具体如下:

OC版

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler{
    //判断先前我们设置的唯一标识
    if([shortcutItem.type isEqualToString:@"-11.UITouchText.share"]){
        NSArray *arr = @[@"hello 3D Touch"];
        UIActivityViewController *vc = [[UIActivityViewController alloc]initWithActivityItems:arr applicationActivities:nil];
        //设置当前的VC 为rootVC
        [self.window.rootViewController presentViewController:vc animated:YES completion:^{
            
        }];
    }
}

Swift版

func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
        
        switch shortcutItem.type {
        case "-11.UITouchText.share":
                let items = ["hello 3D Touch"]
                let activityVC = UIActivityViewController(
                activityItems: items,
                applicationActivities: nil)
                self.window?.rootViewController?.presentViewController(activityVC, animated: true, completion: { () -> Void in
                
            })
        default:
            break
        }
    }

相信在场很多同僚都和我一样屌丝,还来不及去买iPhone6s导致我们无法去测试是否成功,下面我来带你们去解决该问题,虽然无法让你自己看到运行后的效果,但是判断下是否成功还是可以做到的,方法如下

OC版

if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {
      NSLog(@"你的手机支持3D Touch!");
    }
    else {
        NSLog(@"你的手机暂不支持3D Touch!");
    }

Swift版

if traitCollection.forceTouchCapability == UIForceTouchCapability.Available {

           NSLog(@"你的手机支持3D Touch!");
        }
        else {
            NSLog(@"你的手机暂不支持3D Touch!");
        }

效果图给大家鉴赏一下哦!😄


share.png

好文推荐:Bison教你3分钟集成支付宝好友分享
技术交流群:511040024

推荐一款学习iOS开发的app_____|______| | 传送门

更多经验请点击

如对你有帮助,请不要吝惜你的star和喜欢哦!

技术交流群:534926022(免费) 511040024(0.8/人付费)
原文在:http://www.allluckly.cn/
版权归©Bison所有 如需转载请保留原文超链接地址!否则后果自负!

相关文章

  • iOS9新特性之实现3D Touch就是So easy(更新Sw

    当然根据这篇文章的资料,很难做出这个有趣的功能,至少我是这么认为。于是发挥出我那无敌于世的搜索功能,终于还是让我找...

  • Swift 玩转 3D Touch 之 Peek & P

    什么是3D Touch 3D Touch 是iOS9之后专为 iPhone6s 机型加入的新特性,这一新技术移植于...

  • 【功能】3D Touch

    iOS9专题 3D Touch

  • 【iOS】3D Touch

    3D Touch 是苹果iOS9推出的新特性,同样是iPhone6s和6sPlus的一个新功能。之前的苹果设备则不...

  • ios之3D Touch开发指南

    ios9中3D Touch功能是一个新的亮点,这个方便快捷的功能实现也比较简单,废话不多说直接上代码, 一.3D ...

  • iOS9 新特征之3D Touch实现

    API介绍 UITouch类里API的变化 iOS9中添加的属性 altitudeAngle 当笔平行于平面时,该...

  • iOS9系列专题一——3D Touch

    新的触摸体验——iOS9的3D Touch 一、引言 在iphone6s问世之后,很多果粉都争先要体验3D Tou...

  • iOS9新特性

    01-iOS9新特性之关键字 iOS9新出的关键字:用来修饰属性,或者方法的参数,方法的返回值 好处:1.迎合sw...

  • 3D Touch

    iOS之实现3D Touch跟着官方文档学习3D Touch

  • ios 3D Touch运用

    概述:iOS9中引入3D Touch功能,iOS10中对其使用需求更频繁,,所以对3D Touch功能做一些了解是...

网友评论

  • Brant白叔:你不会按而以,并不是很难按出来。用力按一下就出来了。3d touch是有四种状态的。四个力度。
  • 佚名_i:楼主写的很不错,我实践了一下,发现这个分享的功能和其他的应用的不太一样,这个是打开应用后弹UIActivityViewController,而其他的应用则是直接弹出的,是测试和生产的区别吗?
    Brant白叔:没有实现这个功能的是系统自带的,弹分享。
  • ryugaku:马克了
  • 窗外山海帆:回去敲敲demo
  • Teehom:我又没有iPhone 6s :sweat:
    Bison:@Teehom 我也没有。。。。还想更深入的研究的。。。。不好意思去借同事的手机😓
  • 敖老黑:你一定是来秀6S的~~~~
    Bison:@敖老黑 :smirk: :smirk:
    敖老黑:@Bison 答对→_→哈哈…研究过了,
    Bison:@敖老黑 :smile: 哥们肯定没详细看文章。。。。。
  • Shumin_Wu:喜欢
    Bison:@Shumin_Wu :fist: 喜欢就行
  • soullink2011:有意思,佩服楼楼的钻研
    Bison:@MJ1513 算不上是钻研咯。。。只能算浅谈,最基础的东西。。。大家喜欢就好 :smile:
  • 61750f3dfa0d:看不懂😊
    Bison:@平凡的简单的小小青年 跟着做一遍就懂了。。。这些都是基础性的东西 :smile:

本文标题:iOS9新特性之实现3D Touch就是So easy(更新Sw

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