在有些项目中,和多地方要用到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 需要的可以自己去下载,本人调试成功,可直接使用。下载地址 |
|