3D Touch
来源:互联网 发布:python和大数据挖掘 编辑:程序博客网 时间:2024/06/08 12:32
3D Touch
3D Touch 是苹果iOS9推出的新特性,同样是iPhone6s和6sPlus的一个新功能。之前的苹果设备则不能实现这样的功能。它的出现使app更加便捷化,能够让用户快速的定位到目的页面。
实现3D Touch功能有 静态 和 动态 两种:
静态:只需要在info.plist文件进行简单的键值配置就行(我还是比较习惯使用代码,这样比较灵活且不易出错)。
UIApplicationShortcutItemType —– 点击事件唯一标识符,用来判断点击的是哪个元素
UIApplicationShortcutItemTitle —– 标题
UIApplicationShortcutItemSubtitle —– 副标题,在标题的下方
UIApplicationShortcutItemIconType —– 选取系统的图标类型(枚举)
UIApplicationShortcutItemIconFile —– 自定义图标(35*35,单色图片),如果设置这个属性,那么UIApplicationShortcutItemIconType将失效
UIApplicationShortcutItemUserInfo
注意:UIApplicationShortcutItemType和UIApplicationShortcutItemTitle为必填,其它为选填
动态:在需要的时候进行创建,不需要的时候取消已经存在的。(微信的“收付款”功能就是动态的)。
//日历UIApplicationShortcutIcon *dateIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeDate]; UIApplicationShortcutItem *dateItem = [[UIApplicationShortcutItem alloc] initWithType:@"date" localizedTitle:@"日历" localizedSubtitle:@"选个日期" icon:dateIcon userInfo:nil];//收藏UIApplicationShortcutIcon *favoriteIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeFavorite]; UIApplicationShortcutItem *favoriteItem = [[UIApplicationShortcutItem alloc] initWithType:@"favorite" localizedTitle:@"收藏" localizedSubtitle:@"收藏喜欢的东西" icon:favoriteIcon userInfo:nil];//首页UIApplicationShortcutIcon *homeIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeHome]; UIApplicationShortcutItem *homeItem = [[UIApplicationShortcutItem alloc] initWithType:@"home" localizedTitle:@"首页" localizedSubtitle:@"首页图标" icon:homeIcon userInfo:nil];//显示Item [UIApplication sharedApplication].shortcutItems = @[homeItem,dateItem,favoriteItem,videoItem];
用力按压app图标时,上面的元素就已经能够显示出来了⬆️
下面就是点击相应Item时的操作⬇️
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler{ //判断每个元素设置的唯一标识 if([shortcutItem.type isEqualToString:@"home"])//首页 { UIViewController *homeVC = [UIViewController new]; homeVC.view.backgroundColor = [UIColor redColor]; [self addWindowRootViewController:homeVC LabelTitle:@"首页"]; } else if([shortcutItem.type isEqualToString:@"favorite"])//收藏 { UIViewController *favoriteVC = [UIViewController new]; favoriteVC.view.backgroundColor = [UIColor redColor]; [self addWindowRootViewController:favoriteVC LabelTitle:@"收藏"]; } else if ([shortcutItem.type isEqualToString:@"date"])//日历 { UIViewController *dateVC = [UIViewController new]; dateVC.view.backgroundColor = [UIColor redColor]; [self addWindowRootViewController:dateVC LabelTitle:@"日期"]; } else//视频 { UIViewController *videoVC = [UIViewController new]; videoVC.view.backgroundColor = [UIColor redColor]; [self addWindowRootViewController:videoVC LabelTitle:@"视频"]; }}//作为window的根视图显示(实际应用的跳转可根据runtime机制进行操作,此处只作为模拟使用)- (void)addWindowRootViewController:(UIViewController *)rootViewController LabelTitle:(NSString *)title{ UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 250, kScreen_width, 100)]; titleLabel.backgroundColor = [UIColor orangeColor]; titleLabel.text = [NSString stringWithFormat:@"%@",title]; titleLabel.font = [UIFont systemFontOfSize:50]; titleLabel.textAlignment = NSTextAlignmentCenter; [rootViewController.view addSubview:titleLabel]; self.window.rootViewController = rootViewController;}
⬆️以上代码我都写在AppDelegate.m文件中,仅供参考和理解。
注意:kScreen_width是宏定义#define kScreen_width ([UIScreen mainScreen].bounds.size.width)
实际效果:
a.系统限制每个App最多显示4个Item,其它无效。
b.静态创建和动态创建同时存在的情况下,优先显示静态创建。
UIApplicationShortcutIconType是系统给的一个枚举类型,里面有多种图标样式供我们选择:
UIApplicationShortcutIconTypeShare ===>
UIApplicationShortcutIconTypeUpdate ===>
UIApplicationShortcutIconTypeTime ===>
UIApplicationShortcutIconTypeAdd ===>
UIApplicationShortcutIconTypeAlarm ===>
UIApplicationShortcutIconTypeAudio ===>
UIApplicationShortcutIconTypeBookmark ===>
UIApplicationShortcutIconTypeCapturePhoto ===>
UIApplicationShortcutIconTypeCaptureVideo ===>
UIApplicationShortcutIconTypeCloud ===>
UIApplicationShortcutIconTypeCompose ===>
UIApplicationShortcutIconTypeConfirmation ===>
UIApplicationShortcutIconTypeContact ===>
UIApplicationShortcutIconTypeDate ===>
UIApplicationShortcutIconTypeFavorite ===>
UIApplicationShortcutIconTypeHome ===>
UIApplicationShortcutIconTypeInvitation ===>
UIApplicationShortcutIconTypeLocation ===>
UIApplicationShortcutIconTypeLove ===>
UIApplicationShortcutIconTypeMail ===>
UIApplicationShortcutIconTypeMarkLocation ===>
UIApplicationShortcutIconTypeMessage ===>
UIApplicationShortcutIconTypePause ===>
UIApplicationShortcutIconTypePlay ===>
UIApplicationShortcutIconTypeProhibit ===>
UIApplicationShortcutIconTypeSearch ===>
UIApplicationShortcutIconTypeTask ===>
UIApplicationShortcutIconTypeShuffle ===>
UIApplicationShortcutIconTypeTaskCompleted ===>
后续会不断更新……
- 关于3D Touch
- 关于3D Touch
- 3D Touch初探
- 3D Touch大法
- 3D Touch
- ios 3D Touch
- 3D touch
- 3D Touch
- 3D Touch
- iphone 3D Touch
- 3D Touch入门
- 3D Touch APIs
- ios9 3D Touch
- 3D Touch详解
- 3D touch功能
- iOS 3D touch
- 3D Touch是什么?
- 3D Touch
- windows2008,ftp安装与实现
- 关于动态顺序表的所有操作代码
- POJ 3249 Test for Job(拓扑排序+dp)
- js obj.push()js向数组对象最后添加一个新元素,并返回新的数组长度
- hdoj 1027 Ignatius and the Princess II(排列组合)
- 3D Touch
- JAVA识别身份证号码,H5识别身份证号码,tesseract-ocr识别(一)
- LUA string库详解
- 纪录一些很不错的文章
- C语言实现顺序表的所有操作代码
- 剑指offer-两个链表的第一个公共节点
- 深入理解requestAnimationFrame
- 【数论】[codevs 2952 细胞分裂]快速幂
- 基于数字图像处理的人民币碎片拼接