iOS-UIScrollView-图片缩放

一. 实现功能

两个手指捏合,可以放大或者缩小图片.

二.原理说明

1. 实现缩放功能的四个步骤

(1) 让控制器遵守代理协议

(2) 让scrollView设置代理 self

(3) 调用代理方法, 返回需要实现缩放的子控件

(4) 设置缩放比例

2.补充: 跟缩放相关的代理方法

(1)  - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view

(2)  - (void)scrollViewDidZoom:(UIScrollView *)scrollView

三. 代码部分 (可以直接复制使用)

#import "ThirdViewController.h"
#import "Masonry.h"

@interface ThirdViewController () <UIScrollViewDelegate>

@property (nonatomic, strong) UIScrollView  * scrollView;

@property (nonatomic, strong) UIImage       * image;

@property (nonatomic, strong) UIImageView   * imageView;

@end

@implementation ThirdViewController

#pragma mark - 生命周期
#pragma mark viewDidLoad
- (void)viewDidLoad
{
    [super viewDidLoad];

    [self basicSetting];

    [self addscrollView];

    [self addImageView];
}

#pragma mark - 系统代理

#pragma mark 返回需要缩放的子控件
-  (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.imageView;
}

#pragma mark - 实现方法
#pragma mark 基本设置
- (void)basicSetting
{
    self.title = @"UIScrollView-图片放大";
}

- (void)addscrollView
{
    [self.view addSubview:self.scrollView];
    [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.edges.mas_equalTo(self.view).with.insets(UIEdgeInsetsMake(0, 0, 0, 0));
    }];
}

- (void)addImageView
{
    [self.scrollView addSubview:self.imageView];
    [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.left.mas_equalTo(self.scrollView);
        make.width.mas_equalTo(self.view.bounds.size.width);
        make.top.mas_equalTo(self.scrollView);
        make.height.mas_equalTo([UIScreen mainScreen].bounds.size.height);
    }];
}

#pragma mark - setter & getter

- (UIScrollView *)scrollView
{
    if (!_scrollView)
    {
        self.scrollView = [[UIScrollView alloc] init];
        self.scrollView.backgroundColor = [UIColor orangeColor];

        // 设置最大拉伸比例
        self.scrollView.maximumZoomScale = 2.0f;

        // 设置最小缩放比例
        self.scrollView.minimumZoomScale = 0.5f;

        // 设置scrollview 的滚动范围和图片真实尺寸一致
        self.scrollView.contentSize = self.image.size;

        self.scrollView.delegate = self;
    }
    return _scrollView;
}

- (UIImage *)image
{
    if (!_image)
    {
        self.image = [UIImage imageNamed:@"红妹子"];
    }
    return _image;
}

- (UIImageView *)imageView
{
    if (!_imageView)
    {
        self.imageView = [[UIImageView alloc] init];
        self.imageView.image = self.image;
    }
    return _imageView;
}

@end
时间: 2024-10-12 00:44:50

iOS-UIScrollView-图片缩放的相关文章

iOS &amp; Objective-C UIScrollView 图片缩放+居中

(面前横着图形学实验的deadline 我居然搞这个.. 在将图片居中的地方坑了好久,从 NSLog 输出的内容可以看出使用 ScrollView 大概的函数调用流程 略 最后是在 (void)scrollViewDidZoom:(UIScrollView *)scrollView 函数中更新 imageView.frame.origin,就是image在scrollView里的偏移. 下面这条要靠前写,不然设置zoomScale就不会生效 self.scrollView.delegate =

iOS开发基础-UIScrollView实现图片缩放

当用户在 UIScrollView 上使用捏合手势时, UIScrollView 会给 UIScrollViewDelegate 协议发送一条消息,并调用代理的 viewForZoomingInScrollView: 方法,该方法返回的控件就是需要进行缩放的控件. 实现缩放功能的步骤: 1)让控制器遵守 UIScrollView 的代理协议 UIScrollViewDelegate : 2)为 UIScrollView 设置代理, _scrollView.delegate = self; : 3

IOS UIScrollView详解 & 图片缩放功能

一 UIScrollView 简介 UIScrollView是能滚动的视图控件,可以通过滚动的方式来展示类容. 二 UIScrollView常见属性 //设置UIScrollView滚动的位置 @property(nonatomic) CGPoint contentOffset;  //设置UIScrollView内容的尺寸,滚动范围 @property(nonatomic) CGSize contentSize;  //设置UIScrollView的4周增加额外的滚动区域 @property(

UIScrollView控件实现图片缩放功能

UIScrollView控件实现图片缩放功能 iOS开发UI篇-UIScrollView控件实现图片缩放功能

ios 改变图片大小缩放方法

http://www.cnblogs.com/zhangdadi/archive/2012/11/17/2774919.html http://bbs.csdn.net/topics/390898581 ios 改变图片大小缩放方法 -(UIImage*) OriginImage:(UIImage *)image scaleToSize:(CGSize)size{    UIGraphicsBeginImageContext(size);  //size 为CGSize类型,即你所需要的图片尺寸

iOS图片 缩放、剪裁、自适应剪裁、保存到相册

原文链接: iOS图片 缩放.剪裁.自适应剪裁.保存到相册 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/MajorLMJ iOS开发者公会-技术1群 QQ群号:87440292 iOS开发者公会-技术2群 QQ群号:232702419 iOS开发者公会-议事区   QQ群号:413102158

UIScrollView-大图片展示 与图片缩放 Demo

一 大图片展示 #import "MJViewController.h" @interface MJViewController () { UIScrollView *_scrollView;//方但全局调用定义成成员变量 } @end @implementation MJViewController - (void)viewDidLoad { [super viewDidLoad]; // 1.创建UIScrollView UIScrollView *scrollView = [[U

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

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

开发利器_ImageMagick.基于Linux命令行的图片缩放/编辑/格式转换?

简单介绍: ImageMagick是一系列的用于修改,加工图像的命令行工具,能够快速地使用命令行对图片进行操作,对大量的图片进行批处理,它能执行相当多操作,本文涉及的只是开发中常用的技能. 快速安装: yum -y install epel-release yum install -y ImageMagick ImageMagick-devel 格式转换: convert 1.png 1.jpg 缩放图像: convert 1.jpg -resize 499x 1.jpg 说明: ImageMa

php实现图片缩放功能类

http://www.poluoluo.com/jzxy/201312/255447.html <?php /** * Images类是一个图片处理类 * @package application.controllers * @since 1.0 */ class Images { /** * 缩放图片 * @param $source原图片 * @param $newfile新图片 * @param $pre缩放比例 */ public function thumn($source,$pre,