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中,这样就可以滚动浏览多张图片了
新闻热点
疑难解答