前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 图片浏览的放大缩小

iOS 图片浏览的放大缩小

作者头像
且行且珍惜_iOS
发布2018-05-22 17:14:57
3.8K0
发布2018-05-22 17:14:57
举报

功能描述:支持网络和本地gif、jpeg等格式图片的浏览、捏合或双击放大缩小、长按保存到本地相册、获取gif图片的循环次数和时长。

效果预览.gif

主要部分:创建一个继承于UIScrollView的子类视图WSLPhotoZoom,这个视图需要一个展示图片的UIImageView,然后再结合UIScrollView自带的缩放手势的代理方法来达到缩放效果;最后只需要把这个能缩放的视图放到需要展示图片的视图上就行了。当然,也可以结合UIPinchGestureRecognizer(捏合手势)和UIPanGestureRecognizer(拖拽手势)来实现这样的效果。

#pragma mark -- UIScrollViewDelegate
//返回需要缩放的视图控件 缩放过程中
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return self.imageView;
}

//开始缩放
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view{
    NSLog(@"开始缩放");
}
//结束缩放
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{
    NSLog(@"结束缩放");
}

//缩放中
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
    // 延中心点缩放
    CGFloat imageScaleWidth = scrollView.zoomScale * self.imageNormalWidth;
    CGFloat imageScaleHeight = scrollView.zoomScale * self.imageNormalHeight;
  
    CGFloat imageX = 0;
    CGFloat imageY = 0;
     imageX = floorf((self.frame.size.width - imageScaleWidth) / 2.0);
     imageY = floorf((self.frame.size.height - imageScaleHeight) / 2.0);
     self.imageView.frame = CGRectMake(imageX, imageY, imageScaleWidth, imageScaleHeight);
    
}

详情不再啰嗦,我相信很多人都懂,直接上 Github ,有需要的可以去看看

与此功能相关的文章可以查看我之前的文章:

iOS 获取gif图片循环次数和时长

UIScrollerView当前显示3张图

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.07.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档