iOS 限制图片的缩放比例 设置捏合手势的缩放比例

捏合手势目测可以无限放大图片,但是一般情况下,我们只允许用户在一定的比例范围内进行缩放

方案:用一个全局的值记录总的缩放比例,当超出范围后就不允许继续超范围,只能回到缩放范围

如果嫌麻烦这里打包好的分类,三行代码搞定:https://github.com/iOSSinger/SGZoomImage

具体代码如下:

#import "ViewController.h"

#define MaxSCale 2.0  //最大缩放比例
#define MinScale 0.5  //最小缩放比例

#import "UIImageView+Zoom.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (nonatomic,assign) CGFloat totalScale;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.totalScale = 1.0;

    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];
    [self.imageView addGestureRecognizer:pinch];

}

- (void)pinch:(UIPinchGestureRecognizer *)recognizer{

    CGFloat scale = recognizer.scale;

    //放大情况
    if(scale > 1.0){
        if(self.totalScale > MaxSCale) return;
    }

    //缩小情况
    if (scale < 1.0) {
        if (self.totalScale < MinScale) return;
    }

    self.imageView.transform = CGAffineTransformScale(self.imageView.transform, scale, scale);
    self.totalScale *=scale;
    recognizer.scale = 1.0;

}

@end
时间: 2025-01-21 20:14:22

iOS 限制图片的缩放比例 设置捏合手势的缩放比例的相关文章

iOS项目开发实战——storyboard设置界面技巧与注意事项

在iOS开发中,使用Main.storyboard来设计界面是每一个iOS开发人员需要面对的问题,使用storyboard相比较Android中使用XML来设置布局,有优点也有缺陷,现在我们来谈谈storyboard的设计技巧. (1)直接使用鼠标右键可以直接缩放storyboard的缩放比例.当然你也可以用触摸板使用2根手指缩放. . (2)拖拽控件绑定到代码中,不一定要从设计界面的控件中进行拖拽,也可以直接从左侧的列表中拖拽,这样会更加清晰方便. . (3)如何添加修改超过一屏的控件.我们把

麦子学院ios笔记:IOS把图片缓存到本地的几种方法

把ios的图片缓存到本地的方法有几种?现在来看看学生在麦子学院学习ios开发的笔记中有讲到哪几种方法呢? <code>把图片缓存到本地,在很多场景都会用到,如果是只储存文字信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存图片到沙盒就没那么方便了.这里介绍两种保存图片到沙盒的方法. </code> 一.把图片转为base64的字符串存到数据库中或者plist文件中,然后用到的时候再取出来 <code class="hljs" obje

iOS开发项目篇—50设置cell的背景

iOS开发项目篇—50设置cell的背景 一.简单说明 当前样式: 1.去掉分隔线 2.设置背景图片(新浪提供了四种图片,底部的图片有阴影) cell的四种背景图 问题:cell怎么知道自己当前是处在第几组的第几行? 在自定义cell中提供一个方法,共外界传递当前的组和行 YYCommonCell.h文件 1 // 2 // YYCommonCell.h 3 // 4 5 #import <Foundation/Foundation.h> 6 @class YYCommonItem; 7 @i

Chromium网页滑动和捏合手势处理过程分析

从前面一文可以知道,Chromium的Browser进程从Touch事件中检测到滑动和捏合手势之后,就会将它们发送给Render进程处理.滑动手势对应于修改网页的Viewport,而捏合手势对应于设置网页的缩放因子.通常我们比较两个浏览器的流畅程度,就是比较它们的滑动和捏合性能.因此,浏览器必须要快速地响应用户的滑动和捏合手势.本文接下来就详细分析Chromium快速响应网页滑动和捏合手势的过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 从前面Ch

iOS 获取图片(拍照,图库,相册)

iOS  获取图片有三种方法 1 直接调用摄像头拍照 2 从相册中选择 3 从图库中选择 UIImagePickerController 是系统提供的用来获取图片和视频的接口: 用UIImagePickerController 类来获取图片视频: 大体分为以下几个步骤: 初始化UIImagePickerController 类 设置UIImagePickerController 实例的数据来源类型(下面解释): 设置设置代理 如果需要做图片修改的话设置allowsEditing =yes 数据

delphi_xe开发ios环境的安装与设置

http://wenku.baidu.com/link?url=NE3xJOZiLppdxCbXJX3W0vyLHv6uA_U8uamjx9NJIIcxnfuC2P9eWx3d6Xwco-ugS8GHzbnCkPychwhLB0-_Nu9uxJXlLfihK7bDxFlB-o_ xue8111098 加入VIP | 个人中心 | | 百度首页 新闻 网页 贴吧 知道 音乐 图片 视频 地图 百科文库 3帮助 全部DOCPPTTXTPDFXLS 首页 分类 教育文库 精品文库 机构合作 文库VI

ios开发--旋转、移动、缩放手势实例代码

代码如下: C代码   // 添加所有的手势 - (void) addGestureRecognizerToView:(UIView *)view { // 旋转手势 UIRotationGestureRecognizer *rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateView:)]; [view addGestureReco

IOS把图片做成圆形效果

利用CAShapeLayer可以制作出任意的几何图形,把它作为UIImageView的遮罩,达到把图片做成圆形效果. imgView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 35, 80, 80)]; imgView.image = [UIImage imageNamed:@"ma.jpg"]; UIBezierPath* path = [UIBezierPath bezierPathWithArcCenter:CGPoin

iOS:沙盒、偏好设置、归档、解归档

一.沙盒和应用程序包 •iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒 •iOS常用目录: –Bundle –Documents –Library/Caches –Library/Preference –tmp 显示mac隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏mac隐藏文件:defaults write com.apple.finder AppleSh