//首先判断用户是否开启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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、简介 3D Touch是指:通过对屏幕施加不同程度的压力来访问附加功能。应用可以通过显示菜单、展示其他内容和播...