最近在项目中,遇到了朋友圈这样的模块,随后我从网上找到各种实现方案.但是最后我又联想到微信的朋友圈的3DTouch功能,所以我也想尝试做一下,没想到会是如此的简单.效果图如下:
好让我们来了解一下具体的实现过程吧.
在iOS 9中,新iPhone将第三维度添加到了用户界面。
用户现在可以用力摁下主屏按钮来快速调出应用提供的功能菜单。
在应用中,用户现在可以用力摁下视图以查看更多内容的预览并且快速访问一些功能。
1.实现3DTouch效果首先要遵守UIViewControllerPreviewingDelegate协议,并实现
第一个代理方法:实现这个方法返回预览视图控制器。表明一个特定部分的源视图是响应用户的力触觉,上下文对象的sourceRect属性设置为所需的矩形。例如,如果上下文对象sourceView属性表视图,您可以设置sourceRect属性的框架行所示位置参数的值。系统显示预览(peek)时,它似乎来自所选行。你可以从这个方法禁用预览通过返回nil。
第二个代理方法:实现这个方法来配置和现在提交视图控制器,以一种适合您的应用程序。例如,现在提交视图控制器的视图导航控制器,导航控制器会调用show或者present方法来动画完成显示.
好了说这么些还没看见代码:那就上代码吧.
1.因为3DTouch是系统版本大于9.0,手机型号6s及以上所以我们必须判断我们当前的设备信息是否满足.
1.注册代理对象就不多解释了,sourceView是一个UIView或继承自UIView,所以我们要展示朋友圈的图片,就将图片当做sourceView传递.
2.实现代理方法
1.创建显示预览图片的视图控制器.
2.从previewingContext参数的属性sourceView拿到需要展示的iamgeView,再将iamgeView的image属性,也就是图片传递给控制器的image属性
3.创建imageView显示该image.
现在就可以看到图一那种效果了.如果还有什么不明白可以直接与我联系.动动小手点个赞哦.谢谢!!!
邮箱:weiqi@hzdracom.com
qq:513961360