zoukankan      html  css  js  c++  java
  • 【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的详细实现

    案例:(在模拟器中按住option键,点击鼠标就会出现缩放的手势)


    (1)在ViewController.m中:

    ——缩放东西是UIScrollView除了滚动之外的还有一个功能,所以须要缩放的东西应该先放在UIScrollView里。比方此处的imageView;

    ——而我们在缩放时候,scrollView自己是不知道我们要缩放哪个控件的,所以scrollView须要一个代理来告诉它。这个代理一般就是我们的控制器;

    ——而控制器要成为它的代理就必须遵守它的协议。

    ——控制器在接受协议后,就能够调用这种方法,来告诉scrollView是哪一个控件须要被缩放;

    ——而此时还不能够缩放,由于我们这个scrollView的最大最小缩放比例没有设置,缩放没边界的话是会出大事的。

    #import "ViewController.h"
    
    @interface ViewController ()<UIScrollViewDelegate>//第一步,遵守协议
    @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
    @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        //self.scrollView.contentSize=CGSizeMake(892, 632);
        self.scrollView.contentSize=self.imageView.frame.size;
        //设置缩放最大最小比例
        self.scrollView.maximumZoomScale=2.0;
        self.scrollView.minimumZoomScale=0.2;
        //设置UIScrollView的代理
        self.scrollView.delegate=self;//第二步。把自己设置成代理
        
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    //实现这种方法,事实上代理要做的事情就是返回要缩放的那个控件给scrollView自己去处理
    -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
        return self.imageView;
    }
    
    @end


    (2)怎样在模拟器中模仿缩放手势?

    按住option键。点击鼠标就会出现缩放的手势,拖动就相当于缩放。


    (3)说明

    代理,最关键的数据就是监听。

    即这个控件发生什么变化了,一般都能够直接通知代理。代理能够第一时间知道。而且代理能够做出对应地响应。

    当然。这个协议里地方法有些是必须实现,就是是选择性实行。

  • 相关阅读:
    Azure SQL Database (1) 用户手册
    Windows Azure Web Site (17) Azure Web Site 固定公网IP地址
    MongoDB数据文件内部结构
    压缩 MongoDB 的数据文件
    服务器如何选择网络带宽(转)
    刀片服务器和磁盘阵列卡(RAID)技术---永和维护(转)
    Solr打分出错
    Solr添加SolrDocument报错
    解决Windows Git Bash中文乱码问题
    HAProxy的独门武器:ebtree
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6911335.html
Copyright © 2011-2022 走看看