实现scollView的缩放

使用ios SDK自带的 UIScrollView 可以实现对图片的缩放

现在给大家分享我的项目中可以直接使用的组件,需要引入 afnetworking等第三方框架

关于AFNetworking大家可以自行百度,使用它的目的是下载网络图片(使用SDWebImage也可以)

使用scrollView实现图片的缩放,下面是一个可以直接使用的组件:

主要功能有:

显示网络图片,捏合放大或者缩小,单击关闭当前图片页面,双击放大

//  ImageDetailCon.h

//

//

#import <UIKit/UIKit.h>

@interface ImageDetailCon : UIViewController   

//需要使用 对应的 协议

@property(strong,nonatomic)NSURL *imageURL;

//给外界的接口,外界传值给ImageDetailCon  *vc;,然后present出来即可

@end

//

//  ImageDetailCon.m

//

#import "ImageDetailCon.h"

#import<UIImageView+AFNetworking.h>

//使用afnetworking框架

@interface ImageDetailCon ()

{

UIScrollView *scrollView;

UIImageView *imageView;

}

@end

@implementation ImageDetailCon

- (void)viewDidLoad

{

[super viewDidLoad];

scrollView=[[UIScrollView alloc]initWithFrame:self.view.bounds];

scrollView.maximumZoomScale=5.0;//图片的放大倍数

scrollView.minimumZoomScale=1.0;//图片的最小倍率

scrollView.contentSize=CGSizeMake(self.view.bounds.size.width*1.5, self.view.bounds.size.height*1.5);

scrollView.delegate=self;

imageView=[[UIImageView alloc]initWithFrame:self.view.bounds];

[imageView setImageWithURL:self.imageURL placeholderImage:[UIImage imageNamed:@"Fav_Img_Download"]];

[scrollView addSubview:imageView];

[self.view addSubview:scrollView];

imageView.userInteractionEnabled=YES;

//注意:imageView默认是不可以交互,在这里设置为可以交互

UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapImage:)];

tap.numberOfTapsRequired=1;//单击

tap.numberOfTouchesRequired=1;//单点触碰

[imageView addGestureRecognizer:tap];

UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubleTap:)];

doubleTap.numberOfTapsRequired=2;//避免单击与双击冲突

[tap requireGestureRecognizerToFail:doubleTap];

[imageView addGestureRecognizer:doubleTap];

imageView.contentMode=UIViewContentModeScaleAspectFit;

}

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView  //委托方法,必须设置  delegate

{

return imageView;//要放大的视图

}

-(void)doubleTap:(id)sender

{

scrollView.zoomScale=2.0;//双击放大到两倍

}

- (IBAction)tapImage:(id)sender

{

[self dismissViewControllerAnimated:YES completion:nil];//单击图像,关闭图片详情(当前图片页面)

}

@end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,515评论 1 14
  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 1,583评论 2 4
  • 思路: 一般多张图片的展示都是放在UIScrollView展示。那么图片的放大所有功能一般也是依赖UIScroll...
    不一样的色彩阅读 607评论 0 0
  • 身穿一件白色外套,加一条深色破洞牛仔裤,从上到下显出一股王者的气息,虽然很随意的一件衣服,但却显出他的贵族气质。—...
    我那么傻阅读 964评论 1 1
  • 今天三八妇女节,早上起床洗漱完就收到了儿子的祝福。虽然只是简单的一句“妈,节日快乐”,但我内心已开心无比! ...
    阳光屋阅读 176评论 0 0