IOS setNeedsDisplay setNeedsLayout注意
2015-12-18 14:30
1031 查看
署名: 那年高中今日还
IOS setNeedsDisplay, setNeedsLayout
UIView的setNeedsDisplay 和 setNeedsLayout方法.这两个方法都是异步执行的。
1. Display为了展示,系统为自动调用drawRect方法.
2. Layout 为了布局, 系统为自动调用 layoutSubviews方法.
关于drawRect方法:
1. 在drawRect方法中才能拿到 “ 可用的画图Context”,开始在画布上画画并且展示在 view上;
2. drawRect调用情形: (view要被展示之前)
2.1 viewDidLoad方法之后会被调用 (需要画view中所有subviews)
2.2sizeToFit 方法后被调用 (sizeToFit 为要求系统自动布局方法 , 需要重新画 subviews)
2.3contentMode属性值 被设置为Redraw模式时,比较少用
2.4 直接调用setNeedsDisplay方法时,会调用drawRect;
之所以要重载该方法,是需要在drawRect中进行画图.
DrawRect方法画图注意:
1. 如果是用UIView绘图,只能在drawRect方法中获取相应的contextRef对象并且绘图。在view的其他地方获取的contextRef对象是没有作用的;
2. 如果使用Layer画图,智能在 drawInContext:中绘制;才能拿到有用的绘图对象;
关于layoutSubviews被调用情形 (subview,frame改变时)
1. viewinit时不会被调用
2. addSubview(增加子view时)会被调用
3. 设置view frame时会被触发;
4. 滚动scrollview时会被触发
5. 旋转屏幕会触发
6. *****改变subview的大小时,会触发superView的layoutSubvuews方法;
7. ***** 调用setNeedsLayout方法时候触发
IOS setNeedsDisplay, setNeedsLayout
UIView的setNeedsDisplay 和 setNeedsLayout方法.这两个方法都是异步执行的。
1. Display为了展示,系统为自动调用drawRect方法.
2. Layout 为了布局, 系统为自动调用 layoutSubviews方法.
关于drawRect方法:
1. 在drawRect方法中才能拿到 “ 可用的画图Context”,开始在画布上画画并且展示在 view上;
2. drawRect调用情形: (view要被展示之前)
2.1 viewDidLoad方法之后会被调用 (需要画view中所有subviews)
2.2sizeToFit 方法后被调用 (sizeToFit 为要求系统自动布局方法 , 需要重新画 subviews)
2.3contentMode属性值 被设置为Redraw模式时,比较少用
2.4 直接调用setNeedsDisplay方法时,会调用drawRect;
之所以要重载该方法,是需要在drawRect中进行画图.
DrawRect方法画图注意:
1. 如果是用UIView绘图,只能在drawRect方法中获取相应的contextRef对象并且绘图。在view的其他地方获取的contextRef对象是没有作用的;
2. 如果使用Layer画图,智能在 drawInContext:中绘制;才能拿到有用的绘图对象;
关于layoutSubviews被调用情形 (subview,frame改变时)
1. viewinit时不会被调用
2. addSubview(增加子view时)会被调用
3. 设置view frame时会被触发;
4. 滚动scrollview时会被触发
5. 旋转屏幕会触发
6. *****改变subview的大小时,会触发superView的layoutSubvuews方法;
7. ***** 调用setNeedsLayout方法时候触发
相关文章推荐
- iOS上抓包方法
- iOS开发中,Cocapods的安装及其使用
- iOS右滑返回
- iOS夯实:ARC时代的内存管理
- iOS夯实:内存管理
- iOS开发中隐藏键盘
- iOS 打印类型
- iOS域名转解析为IP
- iOS 开发中的争议(一)
- ios开发求数值的double、float、int类型值的绝对值的函数
- ios 静态库开发
- ios 字符串判断是否包含字符
- ios 除了po命令之外的调试命令
- iOS开发多线程篇—线程的状态
- iOS开发多线程篇—自定义NSOperation
- iOS开发多线程篇—NSOperation基本操作
- iOS开发多线程篇—NSOperation简单介绍
- iOS开发多线程篇—GCD的常见用法
- iOS开发多线程篇—GCD的基本使用
- iOS开发多线程篇—GCD介绍