iOS图片预览、放大缩小
2021-02-17 16:34
2316 查看
-
思路
图片预览,优先考虑基础控件UIImageView、UIButton
图片预览中可能需设置不同的mode,优先考虑UIImageView
typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, UIViewContentModeScaleAspectFill, UIViewContentModeRedraw, UIViewContentModeCenter, UIViewContentModeTop, UIViewContentModeBottom, UIViewContentModeLeft, UIViewContentModeRight, UIViewContentModeTopLeft, UIViewContentModeTopRight, UIViewContentModeBottomLeft, UIViewContentModeBottomRight, }
图片放大、缩小的思路:1. 手势+frame 2.scrollview的zoomScale
很愉快的决定选择2,不要问为什么,因为我懒,能用系统提供的,坚决不折腾
-
上菜
设置页面属性@property (nonatomic, strong) UIScrollView *mScroll; @property (nonatomic, strong) UIImageView *imgInfo;
- 界面初始化
self.mScroll = [[UIScrollView alloc] initWithFrame:CGRectZero]; self.mScroll.backgroundColor = [UIColor colorWithHexs:0x3f3f3f]; self.mScroll.maximumZoomScale = 3.0; self.mScroll.minimumZoomScale = 1; self.mScroll.delegate = self; self.mScroll.showsVerticalScrollIndicator = NO; self.mScroll.showsHorizontalScrollIndicator = NO; [self.view addSubview:self.mScroll]; [self.mScroll mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.preView); }];
self.imgInfo = [[UIImageView alloc] initWithFrame:CGRectZero];
self.imgInfo.clipsToBounds = YES;
[self.imgInfo setUserInteractionEnabled:YES];
self.imgInfo.backgroundColor = [UIColor colorWithHexs:0x3f3f3f];
[self.mScroll addSubview:self.imgInfo];
[self.imgInfo mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.mScroll);
make.width.equalTo(self.mScroll);
}];
其中maximumZoomScale与minimumZoomScale表示可缩放程度 - 顺带加个双击手势,比如双击可放大,再放大,再缩小
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapHandlerTwice)];
tap.numberOfTapsRequired = 2;
[self.imgInfo addGestureRecognizer:tap];
- double click直接控制缩放
- (void)tapHandlerTwice {
if (self.mScroll.zoomScale < 2) {
[self.mScroll setZoomScale:2];
} else if (self.mScroll.zoomScale < 3) {
[self.mScroll setZoomScale:3];
} else {
[self.mScroll setZoomScale:1];
}
} - UIScrollViewDelegate设置scrollview的Zooming View
#pragma mark - UIScrollViewDelegate
- (UIView )viewForZoomingInScrollView:(UIScrollView )scrollView {
return self.imgInfo;
}
相关文章推荐
- iOS 滑动浏览图片 捏合缩小放大 音量线控
- iOS小效果(2)按钮控制图片的放大缩小
- 简单的移动端图片预览 包含放大缩小以及对各种手势的判定
- ios 根据手势放大或缩小图片
- 在线图片上传、预览、裁切、放大、缩小之 cropbox.js 的应用
- iOS 图片捏合放大缩小 点击放大缩小
- iOS开发 UI高级 图片放大缩小的实现
- 在线图片上传、预览、裁切、放大、缩小之 cropbox.js 的应用
- 利用iOS手势与scrollView代理实现图片的放大缩小
- ios 图片拖拽,捏,双击放大缩小
- 使用vue-cropper实现图片裁剪,放大缩小,实时预览等
- ViewPager图片预览之图片的放大缩小,移动,切换(第一课)连载
- iOS开发中,点击放大、缩小图片方法举例
- ios 根据手势放大或缩小图片
- ios图片放大缩小
- iOS用UIScrollView实现图片的放大和缩小(包括双击图片放大或缩小)
- 类似于图片预览中的图片放大缩小功能
- IOS开发笔记-02 图片浏览&amp;Tom 猫-01.放大缩小 02.首尾式动画 03.位移形变
- ios 图片拖拽,捏,双击放大缩小,以及保存到相册
- iOS 图片浏览的放大缩小