代理设计模式在 UIScrollView 中的应用
2016-01-02 00:50
525 查看
代理设计模式在UIScrollView中的应用
成为delegate的条件:
>UIScrollView将delegate需要实现的方法都定义在了UIScrollViewDelegate协议中,因此要想成为UIScrollView的delegate,必须遵守UIScrollViewDelegate协议,然后实现协议中相应的方法,就可以监听UIScrollView的滚动过程了
/**
*监听控件的事件的三种方法:
*1>通过addTarget:的方式来监听事件(前提是这个控件是继承自UIControl)
*2>通过代理的方式来监听事件
*3>通知
*/
------通过代理来监听UIScrollView对象的事件的机制---------
1.设置UIScrollView的delegate属性(也就是为UIScrollView找一个代理对象)
2.让代理对象遵守UIScrollViewDelegate这个协议。当代理对象遵守完毕这个协议以后,就可以保证代理对象中具有了对应的方法。
3.当UIScrollView的某个事件被触发的时候,UIScrollView会自动去找代理对象(delegate)的某个方法,并调用这个方法。(这样就实现了事件的机制)
4.我们要做的就是在代理对象的相应方法中,编写我们的代码。然后当UIScrollView的某个事件被触发的时候,就会自动执行这里的代码了。
设置控制器为UIScrollView的代理有2种方法:
➢方法一:通过代码(self就是控制器)
self.scrollView.delegate=self;
➢方法二:通过storyboard拖线(右击UIScrollView)
这里只用代码演示:
成为delegate的条件:
>UIScrollView将delegate需要实现的方法都定义在了UIScrollViewDelegate协议中,因此要想成为UIScrollView的delegate,必须遵守UIScrollViewDelegate协议,然后实现协议中相应的方法,就可以监听UIScrollView的滚动过程了
/**
*监听控件的事件的三种方法:
*1>通过addTarget:的方式来监听事件(前提是这个控件是继承自UIControl)
*2>通过代理的方式来监听事件
*3>通知
*/
------通过代理来监听UIScrollView对象的事件的机制---------
1.设置UIScrollView的delegate属性(也就是为UIScrollView找一个代理对象)
2.让代理对象遵守UIScrollViewDelegate这个协议。当代理对象遵守完毕这个协议以后,就可以保证代理对象中具有了对应的方法。
3.当UIScrollView的某个事件被触发的时候,UIScrollView会自动去找代理对象(delegate)的某个方法,并调用这个方法。(这样就实现了事件的机制)
4.我们要做的就是在代理对象的相应方法中,编写我们的代码。然后当UIScrollView的某个事件被触发的时候,就会自动执行这里的代码了。
设置控制器为UIScrollView的代理有2种方法:
➢方法一:通过代码(self就是控制器)
self.scrollView.delegate=self;
➢方法二:通过storyboard拖线(右击UIScrollView)
这里只用代码演示:
/** *设置代理的基本步骤: *1.为scrollview设置delegate属性(设置代理对象) *2.让代理对象遵守代理协议 *3.让代理对象,实现协议中的方法 */ //先要让控制器遵守代理协议:—>代码设置方式 @interfaceViewController()<UIAlertViewDelegate> -(void)viewDidLoad{ [superviewDidLoad]; //设置ScrollView的contentSize //设置scrollView的contentSize为图片框的大小 self.scrollView.contentSize=self.imgView.bounds.size; //通过代理来监听scrollview的滚动事件 //1>为UIScrollView设置代理 //让控制器作为UIScrollView的代理 self.scrollView.delegate=self; //设置缩放比:最大能放大多少倍,最小能缩小多少倍, self.scrollView.maximumZoomScale=4.5; self.scrollView.minimumZoomScale=0.1; } //实现代理协议中的方法(滚动方法) //当scrollview滚动的时候就会调用这个方法 -(void)scrollViewDidScroll:(UIScrollView*)scrollView{ //NSLog(@"...."); //输出当前滚动的位置 NSLog(@"%@",NSStringFromCGPoint(scrollView.contentOffset)); } //开始拖拽 -(void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{ NSLog(@"开始拖拽...."); } //停止拖拽 -(void)scrollViewDidEndDragging:(UIScrollView*)scrollViewwillDecelerate:(BOOL)decelerate{ NSLog(@"停止拖拽...."); }
相关文章推荐
- UITableView
- 使ViewStub 来提高UI的加载的性能
- UIScrollView无法滚动可能的原因及解决办法分析
- UIScrollView的简单使用
- UI_如何实现点击图片之后放大,或缩放功能
- UIScrollView 介绍
- UIScrollView无法滚动可能的原因及解决办法分析
- 代理设计模式在 UIScrollView 中的应用
- UI中如何用纯代码的方式来实现一个图片轮播器
- UISteeper 步进器方法的简单整理
- Android笔记——Handler更新UI示例
- 关于开源框架GPUImage 的简单说明
- Request.ServerVariables["Url"]
- UITextField学习总结
- HDU 3732 Ahui Writes Word(多重背包问题)
- leetcode之Permutation Sequence
- Java 配色方案--Dark Flash Builder - by Wilson Silva
- 搭建MiniGUI开发环境
- Xcode Archive打包时不报错,但是buildFailed原因以及解决方案
- Android Volley完全解析(三),定制自己的Request