IOS学习开发笔记(四)-----通过UIScrollView认识代理

代理模式是OC编程中比较常见的一种设计模式,那么什么叫做代理模式呢?举个简单的例子,你委托中介租房子,中介就成了你的代

理人,你会把你对于房子的一些要求告诉他,中介想要做成你这笔生意,那么他就必须要根据你的要求去帮你找房子,房子的任务就全权委托给了中介,而你就不没必要去管中介怎么找房子或者找了多少房子。那么这就构成了一个简单的代理模式。

那么以UIScrollView中的缩放属性为例,来说说代理模式在编程中的具体实现。

通过查看UIScrollView的属性,我们可以很轻松的找到:

<span style="font-size:14px;">@property(nonatomic) CGFloat minimumZoomScale;     // default is 1.0</span>
<span style="font-size:14px;">@property(nonatomic) CGFloat maximumZoomScale;     // default is 1.0. must be > minimum zoom scale to enable zooming</span>

这两条属性分别是用来缩小和放大UIScrollView的,ok,那我们直接
<span style="font-size:14px;">self.scrollView.maximumZoomScale = 2.0;
self.scrollView.minimumZoomScale = 0.5;</span>

Command+R运行一下,发现并没有什么用!那这又是为什么呢?原因就是使用这两条属性,必须要让ViewController继承UIScrollView的代理,通过代理去实现缩小和放大的功能。


首先:

<span style="font-size:14px;">@interface ViewController ()<UIScrollViewDelegate></span>
然后在ViewDidLoad中:

<span style="font-size:14px;">self.scrollView.delegate = self;
</span>
然后调用委托中的:

<span style="font-size:14px;">/**
 *  当用户使用捏合手势的时候会调用
 *
 *  @return 返回的控件就是需要进行缩放的控件
 */
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    NSLog(@"----开始缩放");
    return self.imageView;//imageView是ScrollView的子view
}</span>
最后再使用刚刚的两个属性,即可实现缩小与放大的功能。


其实不难看出,OC中的代理很类似于Java中的接口,都只是定义了一些没有实现的方法,而实现则是根据其他类的具体要求而定的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值