美文网首页其它技术点iOS精华iOS开发技术讨论
iOS 实现3D Touch 并 通过模拟器进行调试

iOS 实现3D Touch 并 通过模拟器进行调试

作者: X先生_vip | 来源:发表于2015-12-01 16:12 被阅读2823次

    一、3D Touch 的实现:

    1.在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中实现添加和分享的入口,代码如下 :
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

        UIApplicationShortcutIcon *firstItemIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];
        UIMutableApplicationShortcutItem *firstItem = [[UIMutableApplicationShortcutItem alloc]initWithType:@"First" localizedTitle:@"添加" localizedSubtitle:nil icon:firstItemIcon userInfo:nil];
    
        UIApplicationShortcutIcon *secondItemIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeShare];
        UIMutableApplicationShortcutItem *secondItem = [[UIMutableApplicationShortcutItem alloc]initWithType:@"Second" localizedTitle:@"分享" localizedSubtitle:nil icon:secondItemIcon userInfo:nil];
    
        application.shortcutItems = @[firstItem,secondItem];
    
        return YES;
    }
    

    2.实现这个方法-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler 在这个方法中处理添加和分享的事件,代码如下:

    -(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler{
    
        if ([shortcutItem.type isEqual:@"add"]) {
        
             NSLog(@"执行添加事件");
    
        }else if([shortcutItem.type isEqual:@"share"]){
        
            NSLog(@"执行分享的操作 ");
        
        }
    }
    

    二、通过模拟器进行调试
    使用SBShortcutMenuSimulator来配置模拟器,使模拟器支持3D Touch

    • 在终端中按顺序输入以下命令:

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

    2.cd SBShortcutMenuSimulator

    3.make

    • 然后打开刚才写好的程序 运行一下打开模拟器,再去终端中按顺序输入一下命令:

    1.xcrun simctl spawn booted launchctl debug system/com.apple.SpringBoard --environment DYLD_INSERT_LIBRARIES=$PWD/SBShortcutMenuSimulator.dylib

    2.xcrun simctl spawn booted launchctl stop com.apple.SpringBoard

    3.echo 'com.apple.mobilecal' | nc 127.0.0.1 8000
    **注意: 'com.apple.mobilecal' ''里边写的是自己项目的Bundle identifier. **
    **这行命令就是要让模拟器显示出3D Touch,每次想要显示快速入口只要重复操作即可 **

    三、现在看一下效果:

    运行结果

    相关文章

      网友评论

      本文标题:iOS 实现3D Touch 并 通过模拟器进行调试

      本文链接:https://www.haomeiwen.com/subject/xzpjhttx.html