IOS系列——ScrollView大放大和缩小功能的简单实现

来源:互联网 发布:苹果电脑系统安装软件 编辑:程序博客网 时间:2024/05/02 06:46

在有些项目中,和多地方要用到SCrollView,他的具体属性,我在前面的文章中做了一下简单的总结,但是Scrollview 这个的功能实在的是强大了

这次就简单写一下可以实现放大和缩小的功能,

首先数一下原理:

在scrollView中放一个UIVIew 然后再UIView上放需要放大和缩小的UiImageView图片  最后用一个方法来返回UIView

    viewshowview = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 1024, 768)];    //添加一个Scrollview到当前视图    [_showview addSubview:viewshowview];    viewshowview.scrollEnabled = YES;    viewshowview.showsHorizontalScrollIndicator=NO;    viewshowview.showsVerticalScrollIndicator=NO;    viewshowview.delegate = self;                                   //实现Scrollview的代理,需要在.h 文件中添加    viewshowview.bounces=NO;    viewshowview.bouncesZoom=NO;    viewshowview.minimumZoomScale=1;    viewshowview.maximumZoomScale=2;    viewshowview.contentSize = CGSizeMake(1024 , 768  );        bigview = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 1024, 768)];   //添加一个UIView    bigview.backgroundColor = [UIColor clearColor];    [viewshowview addSubview:bigview];            NSString *pathfile = [[NSBundle mainBundle]pathForResource:path ofType:@"png"];    NSData *data = [NSData dataWithContentsOfFile:pathfile];    UIImageView *image = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 1024, 768)];    [image setImage:[UIImage imageWithData:data]];    [bigview addSubview:image];

实现上面的代码之后直接加入下面这个代码就可以了

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)tmpScrollView{    return bigview;}

这里返回值为上面所说的UIView      如果是单个 scrollv里面实现 放大和缩小  上面这个就可以实现  但是如果 scrollview里面嵌套多个scrollview  实现放大和缩小  上面这个不太实用   若果这样的话,可以实现下面的这种方法

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{        for (UIView *v in scrollView.subviews){        return v;    }    return nil;}


上面的只是一些简单的放大缩小,但是在实际项目中,我们很多时候需要的是,在scrollview上实现多图滑动,并且在每个scrollView的单个页面里面也要实现放大和缩小,,其实这些相对来讲也是比较容易的,只是在上面代码的基础上嵌套一个Scrollview,但是比较复杂的是,放大之后的图,划走在划回来变为原样我这里有一个demo 需要的可以自己去下载,本人调试成功,可直接使用。下载地址  http://download.csdn.net/detail/engandend/6326475

原创粉丝点击