iOS 3DTouch 的开发套路大全

编程入门 行业动态 更新时间:2024-10-28 06:29:50

iOS  3DTouch 的开发<a href=https://www.elefans.com/category/jswz/34/1764287.html style=套路大全"/>

iOS 3DTouch 的开发套路大全

今天休息,先来无事就自己看了一下,关于3d touch,看完后自己有动手尝试了一下,感觉也并不是很难,

经过大量的搜索,目前为止,发现有三种实现方式;

第一种:info文件中添加字段

这种方式,最为直接,也最为方便,但是有有一定的缺点,就是显示图标问题,这种方式只能显示,系统给的图标,

必填项(下面两个键值是必须设置的):

UIApplicationShortcutItemType 这个键值设置一个快捷通道类型的字符串 

UIApplicationShortcutItemTitle 这个键值设置标签的标题

选填项(下面这些键值不是必须设置的):

UIApplicationShortcutItemSubtitle 设置标签的副标题

UIApplicationShortcutItemIconType 设置标签Icon类型

UIApplicationShortcutItemIconFile  设置标签的Icon文件

UIApplicationShortcutItemUserInfo 设置信息字典(用于传值)

 

UIApplicationShortcutItemIconType 类型只能用系统的type,如果要想换成自己的图标的话,那这种方法就不适合

下面附上系统提供几种类型:

在appdelegate 中加上这个按压手势回调方法就行了

 

 1 - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler{
 2     //判断先前我们设置的唯一标识
 3     if([shortcutItem.type isEqualToString:@"-11.UITouchText.share"]){
 4         NSArray *arr = @[@"hello 3D Touch"];
 5         UIActivityViewController *vc = [[UIActivityViewController alloc]initWithActivityItems:arr applicationActivities:nil];
 6         //设置当前的VC 为rootVC
 7         [self.window.rootViewController presentViewController:vc animated:YES completion:^{
 8             
 9 
10              }];
11             
12     }else if ([shortcutItem.type isEqualToString:@"Three.3d.tou"])
13     {
14         ThreeViewController *secod = [[ThreeViewController alloc]init];
15         [nav pushViewController:secod animated:YES];
16     
17     
18     
19     }
20 }

第二种:动态标签(别人都是这么叫,有点不明所以然) 

这种方法就完全可以很好的弥补,第一个方法的缺点。但是它也是有一个缺点,就是直接app 装上后运行过一次,才能唤出3d touch手势,第一种是装上就能。

废话不多说,直接上代码,

-(void)add3dtouch
{/*** UIApplicationShortcutItem 创建标签的类* UIApplicationShortcutIcon 创建可变标签的类* UIApplicationShortcutItem 创建标签ICON的类*///    添加系统自带的icon-typeUIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeHome];UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc]initWithType:@"mian" localizedTitle:@"首页" localizedSubtitle:@"fristVC" icon:icon userInfo:nil];
//    添加自己的图标UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"second"];UIApplicationShortcutItem *item1 = [[UIApplicationShortcutItem alloc]initWithType:@"second" localizedTitle:@"SecondVC" localizedSubtitle:@"Second-sub-title" icon:icon1 userInfo:nil];// 如果系统图标不满足需求,可以使用+ (instancetype)iconWithTemplateImageName:(NSString *)templateImageName;// 添加自定义图片作为标签,需要注意的是:图片必须预先添加进bundle中UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"three.jpg"];UIApplicationShortcutItem *item2 = [[UIApplicationShortcutItem alloc]initWithType:@"three" localizedTitle:@"ThreeVC" localizedSubtitle:@"Three-sub-title" icon:icon2 userInfo:nil];// shortcutItems是一个数组[UIApplication sharedApplication].shortcutItems = @[item,item1,item2];}

但是 需要注意的是 在调用这个方法的时候必须要判断系统版本必要大于9.0,不然会崩

// 判断系统版本大于9.0再设置 (若不判断 在低版本系统中会崩溃)if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0){[self add3dtouch];}

回调方法和第一种方法,一样就行了。

第三种: 触发机制 参考 微信朋友圈 3dtouch打开图片 然后向上滑动,下面出现一个菜单view

原博客地址:.html

原博客 里讲解的很详细了,并且有demo链接,我在这里就不做解释了,

 

个人认识,这种方法 相对于前面2种,比较麻烦一点,但是用途是不一样的。前2种,是针对应用图标上的3d touch的,但是第三种是针对应用中的3d touch 效果

 

转载于:.html

更多推荐

iOS 3DTouch 的开发套路大全

本文发布于:2024-02-13 01:20:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690159.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:套路   大全   iOS   DTouch

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!