iOS9新特性之实现3DTouch就是So easy(更新Swift 版 )

首先我们需要在Info.plist文件中加上一项 

<key>UIApplicationShortcutItems</key>
<array><dict><span style="font-family: Arial, Helvetica, sans-serif;"><key>UIApplicationShortcutItemIconType</key><string>UIApplicationShortcutIconTypeShare</string></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><key>UIApplicationShortcutItemTitle</key><string>Share</string></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><key>UIApplicationShortcutItemType</key><string>-11.UITouchText.share</string></dict></array></span>

在此讲解下其中都是些神马意思 

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

OC版 

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

Swift版 
funcapplication(application: UIApplication, performActionForShortcutItemshortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) ->Void) {  } 

关于这个方法是干嘛的?在此大家应该都清楚了吧? 对没错,就是用来处理我们这个3D Touch触发事件的 我的Demo是这么写的,具体如下: 
OC版 
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItemcompletionHandler:(void(^)(BOOL succeeded))completionHandler{     
    //判断先前我们设置的唯一标识if([shortcutItem.typeisEqualToString:@"-11.UITouchText.share"])
         {         
            NSArray *arr = @[@"hello 3D Touch"]; 
            UIActivityViewController *vc = [[UIActivityViewControlleralloc]initWithActivityItems:arrapplicationActivities:nil];            //设置当前的VC 为rootVC         
            [self.window.rootViewControllerpresentViewController:vcanimated:YES completion:^{          
             }];     
}


Swift版 

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


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

OC版 

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


Swift版 
iftraitCollection.forceTouchCapability == UIForceTouchCapability.Available {
             NSLog(@"你的手机支持3D Touch!");         
  }else { 
           <span style="font-family: Arial, Helvetica, sans-serif;"> NSLog(@"你的手机暂不支持3D Touch!");        </span>
<span style="font-family: Arial, Helvetica, sans-serif;"> }</span>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值