3DTouch_ShortcutItem

3D Touch,新一代 Multi‑Touch。

iPhone 6s 推出了一种可以让你与手机进行互动的全新方式。这一次,iPhone 能够感应你按压屏幕的力度。除了轻点、轻扫、双指开合这些熟悉的 Multi‑Touch 手势之外,3D Touch 还带来 Peek 和 Pop,为 iPhone 的使用体验开拓出全新的维度。而且,当你使用 3D Touch 时,iPhone 将回以轻微的触感,让你不仅能够看到按下屏幕的操作效果,还能感觉得到。


判断shortcut是否可用:

ViewController.swift文件中的viewDidLoad方法中添加如下代码,即可判断: 

// 判断设备是否支持 3D Touch
if self.traitCollection.forceTouchCapability == UIForceTouchCapability.Available {
    print("支持")
} else {
    print("不支持")

}

注意,现在真机只有iPhone 6siPhone 6s Plus支持3D Touch


静态shortcutItem添加方法:

  1. 打开工程的Info.plist文件
  2. 添加如下键值对内容如下:
    plist.Info文件

UIApplicationShortcutItemIconType : item的样式
UIApplicationShortcutItemTitle : item的标题
UIApplicationShortcutItemType : item的唯一标示符

如果想要添加多个选项,直接添加多个字典即可。
运行项目,得到如下效果。

我们可用看到效果了,可用点击了,但是没点击反应啊,怎么可以处理点击事件呢,是这样的。看下面:
AppDelegate.swift文件中,添加如下方法:

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

当有按钮被点击,这个方法就会被执行。那这个方法里面该做什么呢? 

判断我们点击了哪个按钮,然后根据按钮做不同的处理: 

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

    // 根据唯一标示符进行判断
    if shortcutItem.type == "com.lanou3g.3dtouch.setting" {
        // 推出设置控制器
        let settingVC = SettingViewController()
        self.window?.rootViewController?.showDetailViewController(settingVC, sender: nil)
    }
}

注意:判断点击的哪个按钮根据的是type,就是唯一标示符 


动态添加shortcutItem

AppDelegate.swift文件的application:didFinishLaunchingWithOptions方法中,添加如下代码,即可动态添加shortcutItem

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:
AnyObject]?) -> Bool {

    // 创建shortcutItem
    let likeShortcutItem = UIApplicationShortcutItem(type: "com.lanou3g.3dtouch.like", localizedTitl  "喜欢", localizedSubtitle: "喜欢点个赞", icon: UIApplicationShortcutIcon(templateImageName: "like"), userInfo: nil)
    let shareShortcutItem = UIApplicationShortcutItem(type: "com.lanou3g.3dtouch.shared", localizedTitle: "分享", localizedSubtitle: nil, icon: UIApplicationShortcutIcon(type: UIApplicationShortcutIconType.Share), userInfo: nil)

    // UIApplicationShortcutItem 代表一个item
    // type: 唯一标示符的属性
    // localizedTitle: 显示的标题
    // localizedSubtitle: 显示的二级标题
    // icon:显示的图片,可以自定义,也可以使用系统提供的样式
    // userInfo: 包含一些信息

    // 把item放到数组中,并赋值给shortcutItems属性
    UIApplication.sharedApplication().shortcutItems = [likeShortcutItem, shareShortcutItem]

    return true
}

同样,运行就可以看到效果了


总结:

关于ShortcutItem,就如下几个类: 

UIApplicationShortcutItem
UIApplicationShortcutIcon: 代表图标的类
UIApplicationShortcutIconType: 代表图片样式的枚举,有很多,比如:.Add / .Share / .Search / .Message / .Favorite / …

后续关于3D Touch内容,后续更新。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值