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

在有些项目中,和多地方要用到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

你可能感兴趣的:(scrollview)