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 6s
和iPhone 6s Plus
支持3D Touch
静态shortcutItem
添加方法:
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内容,后续更新。。