首页 > 代码库 > 【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的详细实现
【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)说明
代理,最关键的数据就是监听。
即这个控件发生什么变化了,一般都能够直接通知代理。代理能够第一时间知道。而且代理能够做出对应地响应。
当然。这个协议里地方法有些是必须实现,就是是选择性实行。
【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的详细实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。