swiftiOS开发3D TOUCH

SwiftCafe 快报 - 3D Touch 实践之桌面快捷方

2015-10-14  本文已影响836人  SwiftCafe
3D Touch 快捷方式

说到 3D-Touch 无疑是这次 iPhone 6s 发布的最主要亮点,究竟这项技术是鸡肋还是革新,自然见仁见智。不过,它的确给了我们一个新的交互维度,只是还需要等待第三方应用们来发挥它的特性。

想想触摸屏从单点触摸到多点触摸吧,交互方式的改变,定会给我们全新的思维角度。

今天给大家介绍一下如何为应用在桌面上的快捷图标添加 3D Touch 交互 - 长按桌面图标调出快捷启动菜单。

快捷启动菜单分为两种,静态动态

静态快捷方式

所谓静态快捷方式,就是在应用安装前预先设置好的不能够改变的菜单项,它的设置方式是在 Info.plist 里面添加一个 UIApplicationShortcutItems 字段,如下图:

Info.plist 声明 3D Touch 快捷菜单

UIApplicationShortcutItems 为数组类型,里面的每一个数组项代表快捷菜单上面的一个菜单项。每一个菜单项都有下面几个属性。

菜单项标题 title.png 菜单项子标题 菜单项图标

我们在 Info.plist 中定义好快捷菜单后,就可以在支持 3D Touch 的设备上,按压桌面的应用图标来调出快捷菜单了。

接收快捷菜单启动

现在,我们能够正常的弹出快捷菜单了,接下来我们就需要相应快捷菜单的事件了。

快捷菜单事件一共有两个入口,如果应用已经在后台打开,就会调用 appDelegateapplication(_:performActionForShortcutItem:completionHandler:) 方法。会传入一个 UIApplicationShortcutItem 类型的参数,代表我们点击的快捷菜单。

处理这种情况下的菜单响应,我们只需要这样:


func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
        
        if shortcutItem.type == "com.xxx.xxx" {
            
            //do something...
            
        }
        
    }

像上面的代码那样,我们只需要区分出菜单的 type 属性,确定了我们点击的是哪个菜单后,进行响应的操作处理即可。

还有一个入口,就是在我们应用第一次被打开的时候,快捷菜单对象,会通过 application(_:, didFinishLaunchingWithOptions:) 方法传入,我们需要检测一下传入的信息,如果能够找到 UIApplicationShortcutItem 对象,我们就进行针对性的处理:


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

        
        if let shortcutItem = launchOptions?[UIApplicationLaunchOptionsShortcutItemKey] as? UIApplicationShortcutItem {
            
            if shortcutItem.type == "com.xxx.xxx" {
                
                //do something...
                
            }
            
        }
        
        // ...
        
        return true
    }

我们对 launchOptions 数组,进行了一个判断,如果能够取到 UIApplicationShortcutItem 的实例,我们就进行处理。

现在,我们已经完成了静态快捷菜单的创建,现在咱们的 APP 就可以支持 3D Touch 桌面快捷菜单啦,充满探索心的你还不快来试试?

下期我们将继续介绍如何创建动态的桌面快捷菜单,期待吧~

更多精彩内容可关注微信公众号:
swift-cafe

上一篇 下一篇

猜你喜欢

热点阅读