iOS-网络图片预览器(缩放,拖拽等手势)

作者 : 开心源码 本文共823个字,预计阅读时间需要3分钟 发布时间: 2022-05-13 共125人阅读

预览效果(原位置启动,放大缩小,拖拽关闭,支持长图,跳转其余界面):

BDB271381EABBA99BA54EE721F799E95.png7D8A5F1DA34B17BE89ACC74539E1863C.png4E004BEC76363F4CBF3E06E3CC16AC94.pngF88A8078DC81687D0262F5BEDD136CEB.png

视图结构:present跳转一个UINavigationController,UINavigationController的根跟控制是UIViewController,在viewcontroller上增加预览器。

功能实现:
1.使用UICollectionView,在UICollectionViewCell上有个一UIScrollView的容器,在上面使用UIImageView展现图片,使用UIScrollView是为了方便实现长图预览,图片放大缩小的功能。

2.网络图片大小的解决:
第一种情况,一般来说在网络较好的情况下都会在列表页(如图列表)时已经加载完图片,在cell中直接拿到图片对象取得大小,根据显示区域的比例计算宽高。

第二种情况,在显示预览时,图片还没有加载完成(图片较大,网络较卡),我会给一个默认的宽高,在网络图片加载完成时,重新刷新他的宽高。(Data形式获取宽高有性能问题,放弃了)

3.拖拽动画和手势的解决:
在UIScrollView上增加了一个UIPanGestureRecognizer拖动手势,开启手势共享。而后根据触摸屏幕时水平方向和垂直方向的速度来判断是进行UICollectionView的左右滑动还是拖拽。在拖拽手势中,根据移动的Y轴距离的和整个区的的高度比例来缩放UIScrollView(使用transform来缩放)

总结:基本能满足少量普通要求的项目,假如想增加更多功能,可以在viewcontroller上增加,改变预览器的显示区域等。

Demo地址

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » iOS-网络图片预览器(缩放,拖拽等手势)

发表回复