iOS开发-------3D Touch之ApplicationShortcutItem

来源:互联网 发布:考研调剂知乎 编辑:程序博客网 时间:2024/05/17 02:25

        自从iPhone 6s / 6s Plus 发布之后,3D Touch给了APP一种新的活力,对于大部分的果粉或者年轻人来说,应该已经很习惯这个新特征了,很多的主流APP也在第一时间适配了3D Touch,为了让自己的APP显得高大上,适配3D Touch就是必不可少的一步了,如何对3D Touch进行开发,网上也有很多的博客,楼主只是学习着应用一下。


在众多的博客中,很感谢下面的博客,楼主也很推荐大家去看一下

iOS9 3D Touch 使用教程


1、静态设置

静态设置就是在项目的Info.plist文件中设置



以上代码如下:
<key>UIApplicationShortcutItems</key><array><dict><key>UIApplicationShortcutItemIconType</key><string>UIApplicationShortcutIconTypeShare</string><key>UIApplicationShortcutItemType</key><string>Title1</string><key>UIApplicationShortcutItemSubtitle</key><string>SubTitle1</string><key>UIApplicationShortcutItemTitle</key><string>StateTitle1</string></dict><dict><key>UIApplicationShortcutItemType</key><string>Title2</string><key>UIApplicationShortcutItemSubtitle</key><string>SubTitle3</string><key>UIApplicationShortcutItemTitle</key><string>StateTitle2</string></dict><dict><key>UIApplicationShortcutItemType</key><string>Title3</string><key>UIApplicationShortcutItemSubtitle</key><string>SubTitle3</string><key>UIApplicationShortcutItemTitle</key><string>StateTitle3</string></dict></array>

效果如下:




其中有几个可以设置的键值
    //必须设置值的键    UIApplicationShortcutItemType       //位置标识符    UIApplicationShortcutItemTitle      //标题        //可选设置值得键    UIApplicationShortcutItemIconType   //显示图标系统类型    UIAPPlicationShortcutItemIconFile   //显示图标的图片名    UIAPPlicationShortcutItemUserInfo   //用户信息字典信息,自定义参数

其中UIApplicationShortcutItemIconType有如下几种默认的枚举类型
typedef NS_ENUM(NSInteger, UIApplicationShortcutIconType) {    UIApplicationShortcutIconTypeCompose,    UIApplicationShortcutIconTypePlay,    UIApplicationShortcutIconTypePause,    UIApplicationShortcutIconTypeAdd,    UIApplicationShortcutIconTypeLocation,    UIApplicationShortcutIconTypeSearch,    UIApplicationShortcutIconTypeShare,    UIApplicationShortcutIconTypeProhibit       NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeContact        NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeHome           NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeMarkLocation   NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeFavorite       NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeLove           NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeCloud          NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeInvitation     NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeConfirmation   NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeMail           NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeMessage        NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeDate           NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeTime           NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeCapturePhoto   NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeCaptureVideo   NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeTask           NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeTaskCompleted  NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeAlarm          NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeBookmark       NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeShuffle        NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeAudio          NS_ENUM_AVAILABLE_IOS(9_1),    UIApplicationShortcutIconTypeUpdate         NS_ENUM_AVAILABLE_IOS(9_1)} NS_ENUM_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED;


2、动态代码实现

代码的实现需要在方法-applocation:didFinishLaunchingWithOptions:中实现

个人习惯而言,楼主喜欢自定义一个创建方法,在上述方法中调用自定义创建方法即可
#ifdef __IPHONE_9_0 //因为这个类是iOS 9_0 之后的,所以预编译指令,在iOS 9_0 之后进行编译/** *  创建3D Touch选项 */- (void)createShortcutItems{    //最简单的形式    UIApplicationShortcutItem * item1 = [[UIApplicationShortcutItem alloc]initWithType:@"item1"                                                                        localizedTitle:@"Item1"];        //可以自定义选项    UIApplicationShortcutIcon * icon2 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];    UIApplicationShortcutItem * item2 = [[UIApplicationShortcutItem alloc]initWithType:@"item2"                                                                        localizedTitle:@"Item2"                                                                     localizedSubtitle:@"Item2"                                                                                  icon:icon2                                                                              userInfo:nil];    //使用自定义的图片定义选项    UIApplicationShortcutIcon * icon3 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"delete"];    UIApplicationShortcutItem * item3 = [[UIApplicationShortcutItem alloc]initWithType:@"item3"                                                                        localizedTitle:@"Item3"                                                                     localizedSubtitle:@"item3"                                                                                  icon:icon3                                                                              userInfo:nil];    //响应到APP端    [UIApplication sharedApplication].shortcutItems = @[item3,item2,item1];}#endif

在-applocation:didFinishLaunchingWithOptions:中实现
#ifdef __IPHONE_9_0    [self createShortcutItems];#endif

效果图如下:



响应方法:


按下后如何响应
-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler{    NSLog(@"shortcutType = %@",shortcutItem.type);}




0 0
原创粉丝点击