码迷,mamicode.com
首页 > 移动开发 > 详细

【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的具体实现

时间:2014-10-18 16:58:36      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:http   io   os   ar   for   2014   on   ad   时间   

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

bubuko.com,布布扣

(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)说明

代理,最重要的作用就是监听。即这个控件发生什么变化了,一般都可以直接通知代理,代理可以第一时间知道,并且代理可以做出相应地响应。

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

【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的具体实现

标签:http   io   os   ar   for   2014   on   ad   时间   

原文地址:http://blog.csdn.net/weisubao/article/details/40212477

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!