给iOS app 主屏幕图标增加3D Touch菜单
3D touch是苹果在iPhone 6s/6s plus当中新增的一项功能。3D touch可以感知压力,并且触发不同的动作。事实上3D touch可以存在于屏幕上,也可以存在于APP内部。
需要注意的是,这项功能需要硬件的支持,并且硬件的操作系统得在iOS 9(包括)以上。悲剧的是模拟器上不支持3D touch~~~
当然,有牛逼的外国程序猿通过插件实现了在模拟器上的3D touch。这里是地址,拿去不谢!
3D Touch in Home Screen
给主屏幕添加3D touch可以使用两种方式,静态方式和动态方式。
所谓静态方式是在info.plist文件中手动添加3D touch菜单;而动态的则需要在代码中来操作。
苹果官方实例ApplicationShortcuts: Using UIApplicationShortcutItem
Add 3D touch by static method
静态方式添加3D touch非常简单,只需要配置参数就可以。
如果使用编辑器方式查看,如有类似如下的代码:
<key>UIApplicationShortcutItems</key>
<array>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>open-favorites</string>
<key>UIApplicationShortcutItemTitle</key>
<string>Favorites</string>
<key>UIApplicationShortcutItemType</key>
<string>com.mycompany.myapp.openfavorites</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>key1</key>
<string>value1</string>
</dict>
</dict>
<dict>
<key>UIApplicationShortcutItemIconType</key>
<string>UIApplicationShortcutIconTypeCompose</string>
<key>UIApplicationShortcutItemTitle</key>
<string>New Message</string>
<key>UIApplicationShortcutItemType</key>
<string>com.mycompany.myapp.newmessage</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>key2</key>
<string>value2</string>
</dict>
</dict>
</array>
UIApplicationShortcutItems的所有字典可选项有:
UIApplicationShortcutItemType
[必填]快捷键跳转的目标。这里填写的信息将发送给App代码,然后在代码中决定具体的动作!
UIApplicationShortcutItemTitle
[必填]快捷菜单的标题!
当你的标题长度刚好够一行的时候,那么恭喜你,这里的值就是你的标题;如果你的标题大于一行,并且你没有指定子标题,那么这一行文字将碎成两行;如果你的文字太长,那么恭喜你,你得去精简一下!否则等着显示异常吧。
需要指出的是,你可以将这里的文字指定到InfoPlist.strings
当中。这样就可以方便的饿实现多语种啦。
UIApplicationShortcutItemSubtitle
快捷菜单的子标题。如标题一样,你可以将其指定到字符串数据当中来实现多语种。
UIApplicationShortcutItemIconType
图标样式,你可以通过使用系统内置、程序内嵌两种方式来完成图标的设定。
关于系统设定的图标,可以在这里查阅。
系统内置图标是相当丰富,基本上够用啦。
UIApplicationShortcutItemIconFile
手工指定图标。如果不喜欢UIApplicationShortcutItemIconType的系统图标,可以从这里指定一个自定义图标。你可以从app的bundle、或者图片名称当中指定。
UIApplicationShortcutItemUserInfo
自定义的扩展数据,你可以在这里指定自定义的数据字典。比如版本信息等等。
这里是一份实例图::