3D touch 比较简单 没有demo

//首先判断用户是否开启3dTouch
self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable)
//若开启,给当前视图(比如一个cell)注册3DTouch的peek(预览)和pop功能
// self是UIViewController
[self registerForPreviewingWithDelegate:self sourceView:cell];

//然后实现UIViewControllerPreviewingDelegate代理  可以封装起来,如果APP很多地方需要用到3DTouch 直接几行代码搞定
//两个代理
//peek(预览)
- (nullable UIViewController *)previewingContext:(id )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 )previewingContext commitViewController:(UIViewController *)viewControllerToCommit {
    [self showViewController:viewControllerToCommit sender:self];
}

你可能感兴趣的:(3D touch 比较简单 没有demo)