【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)说明
代理,最重要的作用就是监听。即这个控件发生什么变化了,一般都可以直接通知代理,代理可以第一时间知道,并且代理可以做出相应地响应。
当然,这个协议里地方法有些是必须实现,就是是选择性实行。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。