3DTouch简单实现
来源:互联网 发布:js combox获取选中值 编辑:程序博客网 时间:2024/06/17 01:54
分两种实现方式:1.静态的在plist文件里面添加,2.在AppDelegate里通过代理使用代码来动态实现。
一,静态实现
静态标签是我们在项目的配置plist文件中配置的标签,在用户安装程序后就可以使用,并且排序会在动态标签的前面。
首先,在info.plist文件中添加如下键值(我在测试的时候,系统并没有提示,只能手打上去):
先添加了一个UIApplicationShortcutItems的数组,这个数组中添加的元素就是对应的静态标签,在每个标签中我们需要添加一些设置的键值:
必填项(下面两个键值是必须设置的):
UIApplicationShortcutItemType 这个键值设置一个快捷通道类型的字符串
UIApplicationShortcutItemTitle 这个键值设置标签的标题
选填项(下面这些键值不是必须设置的) :
UIApplicationShortcutItemSubtitle 设置标签的副标题
UIApplicationShortcutItemIconType 设置标签Icon类型
UIApplicationShortcutItemIconFile 设置标签的Icon文件
UIApplicationShortcutItemUserInfo 设置信息字典(用于传值)
二,动态实现
动态标签是我们在程序中,通过代码添加的,与之相关的类,主要有三个:
UIApplicationShortcutItem 创建3DTouch标签的类
UIMutableApplicationShortcutItem 创建可变的3DTouch标签的类
UIApplicationShortcutIcon 创建标签中图片Icon的类
UIApplicationShortcutItem 创建3DTouch标签的类
UIMutableApplicationShortcutItem 创建可变的3DTouch标签的类
UIApplicationShortcutIcon 创建标签中图片Icon的类
1.在AppDelegate的代理方法里实现;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ self set3DTouch];
}
- (void)set3DTouch{
UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"图片1"];
UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"图片2"];
UIApplicationShortcutIcon *icon3 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"图片3"];
UIMutableApplicationShortcutItem *item1 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"UITouchText.1" localizedTitle:@"足迹" localizedSubtitle:nil icon:icon1 userInfo:nil];
UIMutableApplicationShortcutItem *item2 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"UITouchText.2" localizedTitle:@"发现" localizedSubtitle:nil icon:icon2 userInfo:nil];
UIMutableApplicationShortcutItem *item3 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"UITouchText.3" localizedTitle:@"我" localizedSubtitle:nil icon:icon3 userInfo:nil];
NSArray *arr = @[item1, item2, item3];
[UIApplication sharedApplication].shortcutItems = arr;
}
2.当我们通过标签进入app时,就会在appDelegate中调用这样一个回调,我们可以获取shortcutItem的信息进行相关逻辑操作
- (void)application:(UIApplication *)application performActionForShortcutItem:(nonnull UIApplicationShortcutItem *)shortcutItem completionHandler:(nonnull void (^)(BOOL))completionHandler{
if ([shortcutItem.type isEqualToString:@"UITouchText.1"]) {
NSLog(@"编写跳转到的ViewController");
}else if ([shortcutItem.type isEqualToString:@"UITouchText.2"]){
}else if ([shortcutItem.type isEqualToString:@"UITouchText.3"]){
}
}
这里有一点需要注意:我们在app的入口函数:
- ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions;
也需要进行一下判断,在launchOptions中有UIApplicationLaunchOptionsShortcutItemKey这样一个键,通过它,我们可以区别是否是从标签进入的app,如果是则处理结束逻辑后,返回NO,防止处理逻辑被反复回调。
几点注意:
1、快捷标签最多可以创建四个,包括静态的和动态的。
2、每个标签的题目和icon最多两行,多出的会用...省略
- ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions;
也需要进行一下判断,在launchOptions中有UIApplicationLaunchOptionsShortcutItemKey这样一个键,通过它,我们可以区别是否是从标签进入的app,如果是则处理结束逻辑后,返回NO,防止处理逻辑被反复回调。
几点注意:
1、快捷标签最多可以创建四个,包括静态的和动态的。
2、每个标签的题目和icon最多两行,多出的会用...省略
0 0
- 3DTouch简单实现
- 3Dtouch实现
- 3DTouch实现
- iOS 实现3Dtouch
- IOS实现3DTouch功能
- IOS实现3DTouch功能
- iOS 3DTouch 代码实现
- Android实现3DTouch效果
- Android实现3DTouch效果
- IOS实现3DTouch功能
- iOS新特性实现3DTouch开发
- Android-实现类似3DTouch菜单功能
- iOS10 widget实现,3Dtouch 弹出菜单
- 3DTouch
- 3DTouch
- 3DTouch
- iOS9 3DTouch(ShortcutItem、Peek/Pop)等简单使用
- IOS 3Dtouch
- maven编译时GBK不可映射的字符解决办法
- armv7对应的CACHE操作相关文件解析
- install mangodb
- NSTimer 定时器的应用
- IO
- 3DTouch简单实现
- 数据结构与算法之链表
- linux上安装ldap服务
- Android Volley完全解析
- JSOUP获取网页数据返回403错误(403 error loading URL,connection类)
- vbird笔记2016-02-23
- iOS自定义navigationBar 的rightBarButtonItems
- CNPM搭建私有的NPM服务
- archive 之后无法打包ipa, 显示证书过期。