我们现在来开发一个图片查看原图的功能。主要功能如下:
1、点击图片进入查看原图页面。
2、在原图页面可以对图片进行操作:
2.1、单击任意位置/上滑下滑手势,则退出查看原图页面。
2.2、双击任意位置,第一次双击放大图片、第二次双击缩小图片。
2.3、支持缩放手势,对图片进行缩放。
2.4、左右滑动进行图片的切换。
2.5、图片放大时可以对图片进行拖动,以查看全图。
2.6、首次加载时,会有加载中动画,加载失败,再次进入会重新加载。
好,我们现在就开始吧!
一、创建项目,完成初始界面。
1、创建项目。(这里不做陈述了)
2、创建初始界面。(一个图片展示列表,点击每个图片可以进入查看原图页面)。
效果图:
图片展示列表二、创建原图查看页面
1、创建查看原图控制器,添加collectionView和pageControlLabel。
其中collectionView用于显示图片,pageControlLabel用于显示第几张图片。
collectionView设置为横向滑动。
2、创建collectionViewCell。里面添加ScrollView和UIImageView。
3、给scrollView和imageView添加手势。(单击、双击、上下滑动、左滑、右滑、长按、双指展开捏合)
其中单击、双击、上下滑动、左滑、右滑、双指展开捏合,这些手势都是任意位置都可以使用,因此我把这些手势添加到了scrollView上面;而长按手势,我给添加到了imageView上面。
添加手势注意:单击和双击手势想要共存,需要添加一句代码:
[tapBySingleClickrequireGestureRecognizerToFail:tapByDoubleClick];//点击手势和双击手势共存,当没有检测到doubleTapGestureRecognizer 或者 检测doubleTapGestureRecognizer失败,singleTapGestureRecognizer才有效
4、双击手势、双指捏合展开手势的特殊处理。
双击手势:
双击手势需要判断是连续多次点击的情况。只有连续两次点击的时候,才可以执行放大和缩小功能;连续3次点击的话,不执行。
首先设置一个全局变量,用于判断是连续两次点击还是连续3次点击。
双指捏合展开手势:
因为我们将放大缩小手势添加到了scrollView,所以,我们需要在scrollView的代理方法-(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView中,指定放大缩小的对象。并且在动画结束时,让图片居中显示。
5、添加block回调方法,用于处理退出、左滑、右滑、长按等操作。
完成!看一下效果如何。
第一张图片 第三张图片 放大 缩小 长按出弹框等
网友评论