iOS

3D Touch 解析

Posted by caoyq on August 31, 2017

3D Touch 说明及效果图

3D Touch 只支持 iOS9.0及以上系统、iPhone6s及以上机型


构建3D Touch 图标

1、定义图标 (UIApplicationShortcutIcon)

  • 自定义图标icon
    1
    
      UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"image"];
    
  • 采用系统图标icon(UIApplicationShortcutIconType枚举类)
    1
    
      UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeMessage];
    

2、添加图标类型、标题、副标题等

1
2
3
4
5
6
7
8
9
10
11
12
/**
 type 该item 唯一标识符
 localizedTitle :标题
 localizedSubtitle:副标题(可选)
 icon:icon图标 可以使用系统类型 也可以使用自定义的图片
 userInfo:可选项的附加信息,自定义参数字典传参(可选)
 */
UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc]initWithType:@"message"
                                                                    localizedTitle:@"title"
                                                                    localizedSubtitle:@"subTitle"
                                                                    icon:icon1
                                                                    userInfo:nil];

3、添加到 shortcutItems 中去

1
2
UIApplication *application = [UIApplication sharedApplication];
application.shortcutItems = @[item, item2, ...];

捕获3D Touch 点击功能

从3D Touch点击进入项目,都有一个方法进行统一处理,处理的标识就是之前的type。

1
2
3
4
5
6
7
8
9
- (void)application:(UIApplication *)application
      performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem
      completionHandler:(void(^)(BOOL succeeded))completionHandler
{
    if ([shortcutItem.type isEqualToString:@"store"])
    {
        //视图跳转
    }
}

附录

1、系统提供图标样式(UIApplicationShortcutIconType)