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

    // 创建标签的ICON图标。

        UIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];

        // 创建一个标签,并配置相关属性。

        UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc] initWithType:@"two" localizedTitle:@"么么哒" localizedSubtitle:@"爱你呦" icon:icon userInfo:nil];

        // 将标签添加进ApplicationshortcutItems中。

        [UIApplication sharedApplication].shortcutItems = @[item , item];

     

     

     

     

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    {

        UITableViewCell * cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"cell"];

        

            cell.textLabel.text = [NSString stringWithFormat:@"%@"_data[indexPath.row]];

        

        cell.selectionStyle = UITableViewCellSelectionStyleNone;

        //判断是否支持3d touch

        if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {

            

        //注册3d touch 的代理 和预览的view        

            [self registerForPreviewingWithDelegate:self sourceView:cell];

        }

        

        

        return cell;

    }

     

    //遵循代理, 实现代理方法 

    - (nullable UIViewController *)previewingContext:(id <UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location NS_AVAILABLE_IOS(9_0)

    {

        

        

        NSIndexPath * index = [_tableView indexPathForCell:(UITableViewCell*)[previewingContext sourceView]];

        

        RedViewController *bgView = [[RedViewController alloc]init];

        bgView.view.backgroundColor = [UIColor redColor];

     

      //设置预览的控制器视图的大小    

        bgView.preferredContentSize = CGSizeMake(0.0f, 500.0f);

      //设置预览view 的模糊范围    

        CGRect rect = CGRectMake(0, 0, self.view.frame.size.width,44);

        previewingContext.sourceRect = rect;

        

        return bgView;

        

    }

     

    - (void)previewingContext:(id <UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit NS_AVAILABLE_IOS(9_0);

    {

      //重按弹出的控制器

         [self showViewController:viewControllerToCommit sender:self];

    }

     

     

     //修改重置item

       id  mutableItem = [UIApplication sharedApplication].shortcutItems;

        

        //获取第0shortcutItem

        id oldItem = [mutableItem objectAtIndex: 0];

        //将旧的shortcutItem改变为可修改类型shortcutItem

        id item = [oldItem mutableCopy];

        //修改shortcutItem的显示标题

        [item setLocalizedTitle: @"Click Lewis"];

        

        [item setLocalizedSubtitle:@"xiixixixi"];

        

        [item setIcon:[UIApplicationShortcutIcon iconWithTemplateImageName:@"saoma"]];

        

        [mutableItem replaceObjectAtIndex:0 withObject:item];

        

        [mutableItem removeLastObject];

        

        [[UIApplication sharedApplication] setShortcutItems:mutableItem];

     

    //在重按弹出的控制器中写这个方法

    - (NSArray<id<UIPreviewActionItem>> *)previewActionItems {

        // setup a list of preview actions

        UIPreviewAction *action1 = [UIPreviewAction actionWithTitle:@"吃翔好厉害的样子" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {

            NSLog(@"Aciton1");

            

            if (self.block) {

                

                self.block();

                

            }

     

            

        }];

        

        UIPreviewAction *action2 = [UIPreviewAction actionWithTitle:@"吃翔棒棒哒" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {

            NSLog(@"Aciton2");

        }];

        

        UIPreviewAction *action3 = [UIPreviewAction actionWithTitle:@"吃翔你咋不上天呢" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {

            NSLog(@"Aciton3");

        }];

        

        UIPreviewAction *action4 = [UIPreviewAction actionWithTitle:@"吃翔你咋不上天呢" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {

            NSLog(@"Aciton3");

        }];

        

        UIPreviewAction *action5 = [UIPreviewAction actionWithTitle:@"吃翔你咋不上天呢" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {

            NSLog(@"Aciton3");

        }];

        

        NSArray *actions = @[action1,action2,action3,action4,action5];

     

        // and return them (return the array of actions instead to see all items ungrouped)

        return actions;

    }

    效果如下图:(action1 ,2 ,3 。。。。) 

  • 相关阅读:
    怎么对Navicat for Oracle 调试
    老版本的java代码与新代码如何找出差异
    Oracle 外部表是做什么用的
    如何在Navicat 中编辑和记录
    如何使用文件对比工具文件夹比较会话菜单
    哪些工具可以用来进行Bug管理
    5类开发者须知的工具
    怎么找出代码之间的差异
    Beyond Compare不仅可以修改网页代码
    文件对比工具有哪些用途
  • 原文地址:https://www.cnblogs.com/yuwei0911/p/5871916.html
Copyright © 2011-2022 走看看