美文网首页
3D touch 比较简单 没有demo

3D touch 比较简单 没有demo

作者: AnnieAri | 来源:发表于2017-09-11 17:56 被阅读0次
    //首先判断用户是否开启3dTouch
    self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable)
    //若开启,给当前视图(比如一个cell)注册3DTouch的peek(预览)和pop功能
    // self是UIViewController
    [self registerForPreviewingWithDelegate:self sourceView:cell];
    
    //然后实现UIViewControllerPreviewingDelegate代理  可以封装起来,如果APP很多地方需要用到3DTouch 直接几行代码搞定
    //两个代理
    //peek(预览)
    - (nullable UIViewController *)previewingContext:(id <UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location
    {
        //准备好要预览的vc
          
     //设定预览的界面
        vc.preferredContentSize = CGSizeMake(0.0f,500.0f);
        
        //调整不被虚化的范围,按压的那个cell不被虚化(轻轻按压时周边会被虚化,再少用力展示预览,再加力跳页至设定界面)
        CGRect rect = previewingContext.sourceView.bounds;
        previewingContext.sourceRect = rect;
        
        //返回预览界面
        return vc;
    
    }
    
    //pop(按用点力进入)
    - (void)previewingContext:(id <UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit {
        [self showViewController:viewControllerToCommit sender:self];
    }
    

    相关文章

      网友评论

          本文标题:3D touch 比较简单 没有demo

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