首页 > 学院 > 开发设计 > 正文

图片的缩放功能实现

2019-11-07 22:54:39
字体:
来源:转载
供稿:网友

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中,这样就可以滚动浏览多张图片了实现之后的效果


上一篇:framework制作

下一篇:Retrofit的基本使用

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表