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 。。。。) 

  • 相关阅读:
    C# Enum转换
    Split
    WCF访问安全
    [转] 检索 COM 类工厂中 CLSID 为 {000209FF00000000C000000000000046} 的组件时失败
    ICSharpCode.SharpZipLib.dll压缩的zip包,7zip解压时出错
    js控制ctrl+p
    跨域访问WCF问题
    sql:过滤字段中是否包含数字
    序列化/反序化
    [转]RegistryKey 操作注册表
  • 原文地址:https://www.cnblogs.com/yuwei0911/p/5871916.html
Copyright © 2011-2022 走看看