Home Screen Quick Actions
随着iOS9
和 iPhone 6s/6s plus
的普及,苹果官方提供的3D Touch将带给我们更好玩,更便捷的操作习惯,桌面快捷菜单可谓是3D Touch功能中最实用的一个,有了它,用户不再需要进入app后做额外的操作,便能快速进入指定的页面。
Quick Actions在程序中分为2种,静态( static quick actions)和动态( static quick actions)
Static quick actions
在info.plist文件中配置需要展示的Quick Actions,在plist中添加UIApplicationShortcutItems
段
示例:
<key>UIApplicationShortcutItems</key>
<array>
<dict>
<key>UIApplicationShortcutItemIconType</key>
<string>UIApplicationShortcutIconTypeSearch</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string>这是系统图标</string>
<key>UIApplicationShortcutItemTitle</key>
<string>系统图标</string>
<key>UIApplicationShortcutItemType</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).First</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>firstShorcutKey1</key>
<string>firstShortcutKeyValue1</string>
</dict>
</dict>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>Quick-Action-Menu-Glyph</string>
<key>UIApplicationShortcutItemIconType</key>
<string>UIApplicationShortcutIconTypeShare</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string>这是自定义的图标</string>
<key>UIApplicationShortcutItemTitle</key>
<string>自定义图标</string>
<key>UIApplicationShortcutItemType</key>
<string>2</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>secondShortcutKey1</key>
<string>secondShortcutValue1</string>
</dict>
</dict>
</array>
字段说明:
UIApplicationShortcutItemType
(必须):设置一个ShortcutItem的类型,是一个字符串。
UIApplicationShortcutItemTitle
(必须):设置显示的标题。
UIApplicationShortcutItemSubtitle
(非必须):设置显示的子标题。
UIApplicationShortcutItemIconFile
(非必须):设置自定义显示的图标,应该是单色,35x35的图片,正方形的,否则会出现黑色的图标。如果设置了此段,将忽略UIApplicationShortcutItemTitle
。
UIApplicationShortcutItemIconType
(非必须):设置显示的图标,设置一些枚举使用系统提供的图标,详情可以点击这里。
UIApplicationShortcutItemUserInfo
非必须:点击的时候携带的参数。
Dynamic quick actions
在App也可以用代码动态生成我们quick actions
iOS9 在UIApplication
新增了shortcutItems
属性,让我们生成动态的quick actions,
具体代码示例:
///动态的图标
let shortCut = UIMutableApplicationShortcutItem(type: "type", localizedTitle: "动态的图标", localizedSubtitle: "这是动态的图标", icon: UIApplicationShortcutIcon(type: .Update), userInfo: nil)
application.shortcutItems = [shortCut]
处理quick actions事件
在AppDelegate
中实现 func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void)
即可