1.如果是单张图片的缩放,那么首先创建一个UIScrollView,注意设置代理和缩放系数
- (UIScrollView *)scrollView {
if (!_scrollView) {
_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height, self.frame.size.width, self.frame.size.height - [UIApplication sharedApplication].statusBarFrame.size.height)];
_scrollView.maximumZoomScale = 3.0;
_scrollView.minimumZoomScale = 0.5;
_scrollView.delegate = self;
}
return _scrollView;
}
2.创建需要缩放的imageView
- (UIImageView *)imageView {
if (!_imageView) {
_imageView = [[UIImageView alloc] init];
}
return _imageView;
}
3.将scrollView添加到view中,imageView添加到scrollView中,注意scrollView要设置代理,并实现下面几个方法
//返回需要放大的view,必须实现
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return _imageView;
}
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
NSLog(@"willZoom");
}
//让图片缩放后可以居中
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
NSLog(@"didZoom");
//没有放大的情况下,偏移量为(scrollView.bounds.size.width - scrollView.contentSize.width)/2
CGFloat offsetX = (scrollView.bounds.size.width > scrollView.contentSize.width)?(scrollView.bounds.size.width - scrollView.contentSize.width)/2 : 0.0;
CGFloat offsetY = (scrollView.bounds.size.height > scrollView.contentSize.height)?(scrollView.bounds.size.height - scrollView.contentSize.height)/2 : 0.0;
_imageView.center = CGPointMake(scrollView.contentSize.width/2 + offsetX,scrollView.contentSize.height/2 + offsetY);
}
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {
NSLog(@"endZoom:%f", scale);
// view.center = scrollView.center;
}
这样,就实现了图片的放大和缩小功能。
如果想要实现多张图片的功能,只需要新建一个collectionView,将上面的view添加到collectionViewCell中,这样就可以滚动浏览多张图片了