iOS 图片查看原图(图片缩放、拖动、切换)

我们现在来开发一个图片查看原图的功能。主要功能如下:

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回调方法,用于处理退出、左滑、右滑、长按等操作。

完成!看一下效果如何。

第一张图片
第三张图片
放大
缩小
长按出弹框等

你可能感兴趣的:(iOS 图片查看原图(图片缩放、拖动、切换))