1127笔记





1. 常见属性
@property ( nonatomic ) CGPoint contentOffset;  //  记录 UIScrollView 滚动的位置
@property ( nonatomic ) CGSize contentSize;  //  内容尺寸(能滚动的范围)
@property ( nonatomic ) UIEdgeInsets contentInset;  //  额外增加的滚动区域(在上下左右 4 个边缘)
@property ( nonatomic , assign )  id  delegate;  //  代理对象
@property ( nonatomic )  BOOL  bounces;  //  是否有弹簧效果
@property ( nonatomic )  BOOL  showsHorizontalScrollIndicator; //  是否显示水平滚动条
@property ( nonatomic )  BOOL  showsVerticalScrollIndicator;  // 是否显示垂直滚动条
// tip :  重点掌握 contentSize contentOffset delegate

2. 捏合手势缩放
1. 缩放原理详解
1 >  当用户尝试缩放 UIScrollView 的时候, UIScrollView 会尝试向它的 delegate (代理对象)发送一条消息,询问要缩放哪一个子控件
2 >  换种说法,也就是说, UIScrollView 会尝试调用 delegate 的某个方法  ,询问要缩放哪一个子控件,并且该方法的返回值就是需要缩放的子控件

2. 缩放原理总结
1 > UIScrollView 先设置 delegate 对象
2 > UIScrollView 必须知道 delegate 是通过哪个方法返回需要缩放的子控件, delegate 必须实现那个返回需要缩放子控件的方法
3 > UIScrollView 要跟 delegate 对象协商好:用哪一个方法返回需要缩放的子控件
4 >  那个返回需要缩放子控件的方法就是:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

3. 缩放的一般实现步骤(比如缩放 UIScrollView 内部的 UIImageView
1 >  设置 UIScrollView delegate 为控制器( self
2 >  控制器遵守 UIScrollViewDelegate 协议  
3 >  控制器实现 -(UIView *)viewForZoomingInScrollView: 方法,返回需要缩放的子控件
4 >  设置最大和最小缩放比例

二、代理设计模式
1. 使用场合
1 > A 想让 B 帮忙做一些事情,就让 B 成为 A 的代理
2 > A 想通知一下 B 发生了某些事情,或者想传递一些数据给 B ,就让 B 成为 A 的代理
3 > B 想监听 A 所做的一些事情,就让 B 成为 A 的代理

2. 使用步骤
1 >  定义一份协议
2 > B 要遵守协议,实现相应的方法
3 > A 中要定义一个代理属性  id < 协议 > delegate;
4 >  创建 B 对象,设置 A delegate 属性为 B 对象
©  chenyilong. Powered by  Postach.io

你可能感兴趣的:(笔记)