zoukankan      html  css  js  c++  java
  • 3D Touch

    6s及以上设备才支持;

    一、静态设置

    首先,在info.plist文件中添加如下键值(只能手打上去,没提示):

    先添加了一个UIApplicationShortcutItems的数组,这个数组中添加的元素就是对应的静态标签,在每个标签中我们需要添加一些设置的键值:

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

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

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

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

    UIApplicationShortcutItemSubtitle 设置标签的副标题

    UIApplicationShortcutItemIconType 设置标签Icon类型

    UIApplicationShortcutItemIconFile  设置标签的Icon文件

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

    我们如上截图设置后,运行程序,用我们前面的方法进行测试,效果如下:

    二、动态设置

    可在didFinish函数里添加如下:
     UIApplicationShortcutItem * item = [[UIApplicationShortcutItem alloc]initWithType:@"two" localizedTitle:@"第二个标签" localizedSubtitle:@"看我哦" icon:[UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypePlay] userInfo:nil];
        添加
     [UIApplication sharedApplication].shortcutItems = @[item];
     
    系统风格icon的枚举:
    typedef NS_ENUM(NSInteger, UIApplicationShortcutIconType) {
        UIApplicationShortcutIconTypeCompose,//编辑的图标
        UIApplicationShortcutIconTypePlay,//播放图标
        UIApplicationShortcutIconTypePause,//暂停图标
        UIApplicationShortcutIconTypeAdd,//添加图标
        UIApplicationShortcutIconTypeLocation,//定位图标
        UIApplicationShortcutIconTypeSearch,//搜索图标
        UIApplicationShortcutIconTypeShare//分享图标
    } NS_ENUM_AVAILABLE_IOS(9_0);
     

    - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler NS_AVAILABLE_IOS(9_0);

    当我们通过标签进入app时,就会在appdelegate中调用这样一个回调,我们可以获取shortcutItem的信息进行相关逻辑操作。

    这里有一点需要注意:我们在app的入口函数:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

    也需要进行一下判断,在launchOptions中有UIApplicationLaunchOptionsShortcutItemKey这样一个键,通过它,我们可以区别是否是从标签进入的app,如果是则处理结束逻辑后,返回NO,防止处理逻辑被反复回调。 

    几点注意:

    1、快捷标签最多可以创建四个,包括静态的和动态的。

    2、每个标签的题目和icon最多两行,多出的会用...省略

    三、模拟器模拟3D Touch

    git地址:https://github.com/DeskConnect/SBShortcutMenuSimulator。(不需要去下载)

    1、安装运行

    在终端中一次运行如下指令:

    git clone https://github.com/DeskConnect/SBShortcutMenuSimulator.git

    cd SBShortcutMenuSimulator
    make
    再输入如下:
    xcrun simctl spawn booted launchctl debug system/com.apple.SpringBoard --environment DYLD_INSERT_LIBRARIES=$PWD/SBShortcutMenuSimulator.dylib
    xcrun simctl spawn booted launchctl stop com.apple.SpringBoard
    2、执行(打开6s或以上模拟器)
    终端(每次调试都要重新运行如下)
    echo 'com.apple.mobilecal' nc 127.0.0.1 8000
    其中,com.apple.mobilecal是应用的Bundle ID ,如果要测试我们的应用,将其改为我们应用的BundleID即可,上面的示例应用是系统日历,可以看到模拟器的效果如下:
     
     
    注:若安装了多个xcode,并xcode7不在developer下则先切换到xcode7.0下
    sudo xcode-select -switch /Applications/Xcode2.app/Contents/Developer/
    再执行上面的全部命令,其中xcode2即为xcode7.0,名字不能包含空格,否则会影响运行
  • 相关阅读:
    mod_rewrite
    敏捷开发
    转python和ruby的相同点
    ESB总线知识小结
    使用 squid 2.7 for windows 进行无缓存反向代理
    初探K2workflow
    没激情的工作
    多易拍 二次开发
    查看数二进制代码片段
    生成随机数
  • 原文地址:https://www.cnblogs.com/swallow37/p/4910667.html
Copyright © 2011-2022 走看看