iOS App3D Touch快捷键的静态以及动态设置详细使用

1. 功能支持

3D-Touch 只在 iOS 9 及以上版本得到支持,之前版本的 iOS 并不支持该功能;
3D-Touch 只在 iPhone 6s 及以后型号的 iPhone 或 iPad Pro 上可用,更早的设备并不支持该功能。

2. 添加按钮:a:静态,b:动态,c:点击事件

在info中的添加的是静态的,不可改变;想要自由控制可以用代码添加动态的

 

各参数意义如下:

1. UIApplicationShortcutItemTitle
按钮标题

2. UIApplicationShortcutItemType
设置标签 icon 类型,当用户调用相应的 Action 的时候,会将该字符串传递给你 App

3. UIApplicationShortcutItemSubtitle
按钮副标题,显示在按钮标题下面的小文字

4. UIApplicationShortcutItemIconType
设置按钮图片为系统图标,更多图标可以参见:https://developer.xamarin.com/api/type/UIKit.UIApplicationShortcutIconType/

5. UIApplicationShortcutItemUserInfo
该值用来提供 App 的版本信息

6. UIApplicationShortcutItemIconFile 
指定 App Bundle 中的文件图片或者是在 Asset Catalog 里面的文件名。注意 icon 应是正方形的,单一的颜色。如果你指定了这个值,系统便会忽略掉对 UIApplicationShortcutItemIconType 的设置,因为这两个值是冲突的,而且开发者自己指定的图片优先级比系统图标更高。
参数

 

 

静态VS 动态:

1、优先显示静态添加,总数达到4个不再显示

2、静态使用系统图标,自定义麻烦;动态的可以轻松自定义

3、静态的不可变,但是在动态改变后,静态设置是一直存在的,可以设置固定菜单结合使用

4、动态的可以在任何情况下掉用方法改变,当前显示3D-Touch效果是最后一次改变的

5、动态中自定义 image (2x:70*70  3x:104*104)⚠️:图标显示只有有色(有色区域全是黑色)和透明

a、静态添加:

右键点击工程中的 info.plist 文件选择打开方式为 Source Code:

以 Source Code 方式打开 info.plist
在其中填写如下代码:

<key>UIApplicationShortcutItems</key>
<array>
<dict>
        <key>UIApplicationShortcutItemIconType</key>
        <string>UIApplicationShortcutIconTypeLove</string>
        <key>UIApplicationShortcutItemTitle</key>
        <string>开始上一次挑战</string>
        <key>UIApplicationShortcutItemType</key>
        <string>1</string>
    </dict>
    <dict> 
        <key>UIApplicationShortcutItemIconType</key> 
        <string>UIApplicationShortcutIconTypeShuffle</string> 
        <key>UIApplicationShortcutItemTitle</key> 
        <string>最多可以添加4个,后边的不会再显示</string> 
        <key>UIApplicationShortcutItemType</key> 
      <string>0</string>
   </dict> 
</array>
详情?

b、动态添加:

在需要添加改变的地方添加如下代码:

 

CGFloat currentDeviceVersionFloat = [[[UIDevice currentDevice] systemVersion] floatValue];
if (currentDeviceVersionFloat >= 9.0) {
// 自定义 image 
UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"qq.png"];
//菜单文字
UIMutableApplicationShortcutItem *item1 = [[UIMutableApplicationShortcutItem alloc] initWithType:@"1" localizedTitle:@"旋转"];
//绑定信息到指定菜单
item1.icon = icon1;

 

// 系统图标
UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypePlay];
UIMutableApplicationShortcutItem *item2 = [[UIMutableApplicationShortcutItem alloc] initWithType:@"2" localizedTitle:@"亮点"];
item2.icon = icon2;

[UIApplication sharedApplication].shortcutItems = @[item1,item2];

}

 

c、点击事件

点击事件的判断,是根据在info\代码中设置的type值;

//3D Touch
- (void)application:(UIApplication *)application performActionForShortcutItem:(nonnull UIApplicationShortcutItem *)shortcutItem completionHandler:(nonnull void (^)(BOOL))completionHandler{
    if ([shortcutItem.type isEqualToString:@"0"]) {
        NSLog(@"info中");
        
    }else if ([shortcutItem.type isEqualToString:@"1"]) {
       NSLog(@"设置");
        
    }
   
    else if ([shortcutItem.type isEqualToString:@"2"]) {
        NSLog(@"旋转");
        
    } else if ([shortcutItem.type isEqualToString:@"5"]|[shortcutItem.type isEqualToString:@"6"]) {
        NSLog(@"我在记录界面");
        
    }
    else if ([shortcutItem.type isEqualToString:@"7"]|[shortcutItem.type isEqualToString:@"8"]) {
        NSLog(@"我在游戏界面");
        
    }
    
}
事件处理

 

 

成功添加 3D Touch 按钮

值得一提的是,实际的按钮显示的顺序1 2 3,是根据距离图标的距离由近到远1 2 3 排序的,可以尝试把应用拖动到屏幕上边或者下边使用3D Touch。

 

 

 

转载于:https://www.cnblogs.com/xujiahui/p/7681352.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值