iOS 在6s/6s plus中加入了的3D Touch技术,该技术的功能主要有3个:
1、Home Screen Quick Actions :主屏幕上按icon图标出现快捷选项,然后选择对应选项则会快速进入设定好的页面中
2、提供peek(预览)和pop(详阅、敲击)功能 :启动app之后,可以设置某些页面支持预览和快速回复功能,例如微信点击和某个人的对话就能实现预览
3、iOS9 之后给UITouch对象加入了 压力大小监测的属性force
先讲第一个功能:
效果图:
有两种发式一种是静态方式、一种是动态方式
静态方式就是在plist文件中配置好,当你的app安装之后就可以使用这个功能
动态方式就是用代码创建,所有必需启动app一次之后才能使用这个功能
由于静态方式方便就直讲静态方式:
在plist文件中配置一些快捷项属性
<array>
<dict>
<key>UIApplicationShortcutItemTitle</key>
<string>智能开门</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>key1</key>
<string>value1</string>
</dict>
<key>UIApplicationShortcutItemType</key>
<string>openDoor</string>
<key>UIApplicationShortcutItemIconFile</key>
<string>智能开门@2x.png</string>
</dict>
<dict>
<key>UIApplicationShortcutItemTitle</key>
<string>我要报修</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>key2</key>
<string>value2</string>
</dict>
<key>UIApplicationShortcutItemType</key>
<string>repair</string>
<key>UIApplicationShortcutItemIconFile</key>
<string>在线报修@2x.png</string>
</dict>
<dict>
<key>UIApplicationShortcutItemTitle</key>
<string>访客邀请</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>key3</key>
<string>value3</string>
</dict>
<key>UIApplicationShortcutItemType</key>
<string>invite</string>
<key>UIApplicationShortcutItemIconFile</key>
<string>访客邀请@2x.png</string>
</dict>
<dict>
<key>UIApplicationShortcutItemTitle</key>
<string>社区服务</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>key4</key>
<string>value4</string>
</dict>
<key>UIApplicationShortcutItemType</key>
<string>communityService</string>
<key>UIApplicationShortcutItemIconFile</key>
<string>社区服务@2x.png</string>
</dict>
</array>
UIApplicationShortcutItemType :当点击Icon图标的时候,弹出的选项中每一行设置一个唯一的ID 然后在app里面通过该id判断来确定选择了哪一行(必需有)。
UIApplicationShortcutItemTitle 点击之后弹出的选项中的主标题(必需有)
UIApplicationShortcutItemSubtitle 选项中的副标题。
UIApplicationShortcutItemIconType 利用系统库提供的图标 (UIApplicationShortcutIcon 里面的)。
UIApplicationShortcutItemIconFile 自定义图标,该图标是正方形的、单色的、像素点为35x35,如果这里设置了自定义的图标,设置的UIApplicationShortcutItemIconType属性显示系统图标将不会显示。
UIApplicationShortcutItemUserInfo :是一个字典 用来保存app的版本信息
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIApplicationShortcutItem *shortItem = [launchOptions objectForKey:UIApplicationLaunchOptionsShortcutItemKey];
if (shortItem != nil) {
// _options是个字典主要是用来传递快捷项的type 然后在页面启动完成了之后,我是在
-(void)viewDidAppear:(BOOL)animated方法里面进行页面跳转的。
_options = launchOptions;
return NO;
}
else
{
//非快捷项启动
_options = nil;
return YES;
}
}
注意:didFinishLaunchingWithOptions 这个方法要返回NO 避免重复逻辑操作。
第二中情况:app处于后台挂起状态,在代理方法
-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
在这个方法里面发送通知就可以进行页面跳转。
注意:在iOS 9中,一个应用最多能展示四个主屏快速选项。在这个限制下,系统首先展示静态快速选项,以plist菜单中的第一个为首。如果你的静态选项不够四个,并且你也定义了动态快速选项,那么会展示一个或多个动态快速选项。
两种快速选项都可以显示最多两行文本和一个可选的图标。系统会格式化文本,排列包装它,并且适当的添加省略号。