zoukankan      html  css  js  c++  java
  • iOS 3DTouch

    3D Touch,苹果iPhone 6s的新功能

    有Peek Pop 两种新手势

    实现点击app出现小弹框界面的方法


     

    1.在info.plist中进行设定

    2.或者是在appdelegate里面直接进行添加

    方法didFinishLaunchingWithOptions中直接添加一下代码

    /**

    UIApplicationShortcutIconTypeCompose,//创作

    UIApplicationShortcutIconTypePlay,//播放

    UIApplicationShortcutIconTypePause,//暂停

    UIApplicationShortcutIconTypeAdd,//添加

    UIApplicationShortcutIconTypeLocation,位置

    UIApplicationShortcutIconTypeSearch,搜索

    UIApplicationShortcutIconTypeShare,分享

    */

    //当然也可以自己设置图片

    //添加快捷启动

    UIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeCompose];

    UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc]initWithType:@"0" localizedTitle:@"1" localizedSubtitle:nil icon:icon userInfo:nil];

    UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypePlay];

    UIApplicationShortcutItem *item1 = [[UIApplicationShortcutItem alloc]initWithType:@"1" localizedTitle:@"2" localizedSubtitle:nil icon:icon1 userInfo:nil];

    UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypePause];

    UIApplicationShortcutItem *item2 = [[UIApplicationShortcutItem alloc]initWithType:@"2" localizedTitle:@"3" localizedSubtitle:nil icon:icon2 userInfo:nil];

    UIApplicationShortcutIcon *icon3 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];

    UIApplicationShortcutItem *item3 = [[UIApplicationShortcutItem alloc]initWithType:@"3" localizedTitle:@"3" localizedSubtitle:nil icon:icon3 userInfo:nil];

    UIApplicationShortcutIcon *icon4 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeLocation];

    UIApplicationShortcutItem *item4 = [[UIApplicationShortcutItem alloc]initWithType:@"4" localizedTitle:@"3" localizedSubtitle:nil icon:icon4 userInfo:nil];

    UIApplicationShortcutIcon *icon5 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeSearch];

    UIApplicationShortcutItem *item5 = [[UIApplicationShortcutItem alloc]initWithType:@"5" localizedTitle:@"3" localizedSubtitle:nil icon:icon5 userInfo:nil];

    UIApplicationShortcutIcon *icon6 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeShare];

    UIApplicationShortcutItem *item6 = [[UIApplicationShortcutItem alloc]initWithType:@"6" localizedTitle:@"3" localizedSubtitle:nil icon:icon6 userInfo:nil];

    [[UIApplication sharedApplication] setShortcutItems:@[item4,item5,item6]];

    3.点击不同的小图标进行的操作是,此方法也是写在appdelegate里面的

    - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {

    UINavigationController *nav = (UINavigationController *)self.window.rootViewController;

    //也可以直接在当前最外面的Vc上进行跳转

    DemoViewController *detailVC = [[DemoViewController alloc] init];

    //进行不同界面类型的跳转

    switch ([shortcutItem.type integerValue]) {

    case 0:

    detailVC.titleStr = @"1";

    break;

    case 1:

    detailVC.titleStr = @"2";

    break;

    case 2:

    detailVC.titleStr = @"3";

    break;

    case 3:

    detailVC.titleStr = @"4";

    break;

    case 4:

    detailVC.titleStr = @"5";

    break;

    case 5:

    detailVC.titleStr = @"6";

    break;

    case 6:

    detailVC.titleStr = @"7";

    break;

    case 7:

    detailVC.titleStr = @"8";

    break;

    default:

    break;

    }

    [nav pushViewController:detailVC animated:YES];

    }

    4.点击app里面的按钮执行压力感应,一定要执行这两个方法

    #pragma mark - UIViewControllerPreviewingDelegate- (UIViewController *)previewingContext:(id)previewingContext viewControllerForLocation:(CGPoint)location {    for (UIView *view in self.tableView.subviews) {        NSString *class = [NSString stringWithFormat:@"%@",view.class];        if ([class isEqualToString:@"UITableViewWrapperView"])        for (UIView *littleView in view.subviews) {            if ([littleView isKindOfClass:[UITableViewCell class]] && CGRectContainsPoint(littleView.frame, location)) {                self.touchCell = (UITableViewCell *)littleView;            }        }    }    previewingContext.sourceRect = self.touchCell.frame;    DemoViewController *detailVC = [[DemoViewController alloc] init];    //一定得是在这个方法里面设置代理    detailVC.delegate = self;    return detailVC;}- (void)previewingContext:(id)previewingContext commitViewController:(UIViewController *)viewControllerToCommit {

    [self tableView:self.tableView didSelectRowAtIndexPath:[self.tableView indexPathForCell:self.touchCell]];

    }

    比如说点击完cell出现的下一集界面就是在这里进行设定的

    5.下一级的视图的删除功能需要在下一集的界面里面执行

    - (NSArray> *)previewActionItems {

    UIPreviewAction *action1 = [UIPreviewAction actionWithTitle:@"删除" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {

    if ([self.delegate respondsToSelector:@selector(deleteWithIndexPath:)]) {

    [self.delegate deleteWithIndexPath:1];

    }

    }];

    NSArray *actions = @[action1];

    return actions;

    }

    具体的操作可以使用通知代理等等进行操作

    具体的gitHub地址Demo地址

  • 相关阅读:
    MFC中处理消息的几个函数之间的区别
    双缓冲技术2
    CxImage简单用法2
    C/C++中 const,extern,static,volatile的使用(转帖)
    用BoundsChecker检测内存泄露2
    用BoundsChecker检测内存泄漏
    TrackMouseEvent函数实现鼠标停留响应
    3D——VTK使用
    防止密码被非法获取
    未来界面设计的主流——WPF技术
  • 原文地址:https://www.cnblogs.com/chaoyueME/p/6408594.html
Copyright © 2011-2022 走看看