iOS 9引入了3D Touch,用户可以使用该触摸按下主屏幕图标并获取应用程序中某些操作的快捷方式,或者用户可以在应用程序中按下控件以获得该控件的更多选项或查看其他内容的预览。
我们在客户的应用程序和内部应用程序中集成了3D Touch功能。为了分享一个例子,让我向您展示我的Blood Monk应用程序示例,其中我集成了3D Touch以实现快速主屏幕操作。
现在,按照以下步骤集成3D Touch以进行快速主屏幕操作。
将主屏幕操作添加到您的应用
1.右键单击info.plist文件,打开/源代码。
2.复制info.plist的以下键并将其粘贴到您的项目info.plist文件中。
<key>UIApplicationShortcutItems</key>
<array>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>ic_learn1_traffic_e</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string></string>
<key>UIApplicationShortcutItemTitle</key>
<string>Learn</string>
<key>UIApplicationShortcutItemType</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).Learn</string>
</dict>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>driving_kanun_e</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string></string>
<key>UIApplicationShortcutItemTitle</key>
<string>Driving Laws</string>
<key>UIApplicationShortcutItemType</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).DrivingLaws</string>
</dict>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>ic_test1_traffic_e</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string></string>
<key>UIApplicationShortcutItemTitle</key>
<string>Test</string>
<key>UIApplicationShortcutItemType</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).Test</string>
</dict>
</array>
现在再次右键单击ono info.plist文件打开为/ property list。你会看到类似下面的东西。

UIApplicationShortcutItemIconFile
使用此选项,您可以更改快捷方式的图标。
UIApplicationShortcutItemTitle
使用此选项,您可以更改快捷方式的标题。
UIApplicationShortcutItemSubtitle
使用此选项,您可以更改快捷方式的副标题。
UIApplicationShortcutItemType
使用此选项,您可以唯一标识您的快捷方式。
根据您的需要更改这4个键。您可以根据需要添加更多快捷方式或从plist中删除一些快捷方式。
3.现在打开Appdelegate.swift文件。添加以下代码。
这些是快捷项的类型(唯一标识符)
enum Shortcut: String {
case Learn = "Learn"
case DrivingLaws = "DrivingLaws"
case Test = "Test"
}
4.现在添加以下方法。当用户触摸任何快捷项时,将调用此方法,您将从对象shortcutitem获取有关快捷项的所有信息,如下所示。
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
// Handle quick actions
completionHandler(handleQuickAction(shortcutItem))
//return handled
}
@available(iOS 9.0, *)
func handleQuickAction(shortcutItem: UIApplicationShortcutItem) -> Bool {
var quickActionHandled = false
let type = shortcutItem.type.componentsSeparatedByString(".").last!
if let shortcutType = Shortcut.init(rawValue: type) {
switch shortcutType {
case .Learn:
quickActionHandled = true
self.LearnTouch()
break
case .DrivingLaws:
quickActionHandled = true
self.DrivingLawsTouch()
break
case .Test:
quickActionHandled = true
self.TestTouch()
break
}
}
return quickActionHandled
}
5.现在添加此方法。
func LearnTouch()
{
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let controller : CustomNavigation = storyBoard.instantiateViewControllerWithIdentifier("CustomNavigation") as! CustomNavigation
let mainviewcontroller : HomeVC = storyBoard.instantiateViewControllerWithIdentifier("HomeVC") as! HomeVC
let viewcontroller : LearnVC = storyBoard.instantiateViewControllerWithIdentifier("LearnVC") as! LearnVC
controller.viewControllers=[mainviewcontroller,viewcontroller]
self.window?.rootViewController = controller
}
您可以根据导航要求对这些方法进行更改。这就是3D Touch快速主屏幕动作简易教程,尽情享受编码吧。