ios setNeedsDisplay和setNeedsLayout的区别与用处
来源:互联网 发布:怎么查询计算机端口号 编辑:程序博客网 时间:2024/05/15 09:59
我们可能对这两个命令并不陌生,setNeedsDisplay调用drawRect方法来实现view的绘制,而setNeedsLayout则调用layoutSubView来实现view中subView的重新布局,问题是为何要如此设计呢,直接调用drawRect和layoutSubView不是更省事吗,何必多次一举呢。
假设我们采用的是直接调用drawRect的机制,先考虑这样一个问题 ,,现在有两个UIViewController A和B,A为当前view的viewController,如果此时在A中调用[B.view drawRect],这样B的view无论如何都会调用drawRect的方法重新绘制一遍,这样问题就出来了,有必要吗,毕竟现在显示的是A中的view!B重新绘制一遍就调用了drawRect中的方法,完全是在浪费系统资源啊,而通过setNeedsDisplay,ios就会很聪明的判断出不需要调用drawRect的方法,这样就避免了资源的重复调用!
同理,setNeedsLayout也采用了同样的机制来避免资源的重复利用!
由此我们可以推断出这中设计的精妙之处,ios由很多精妙的设计来缓解手机资源不足的现状,比如cell的重复利用等等。
0 0
- ios setNeedsDisplay和setNeedsLayout的区别与用处
- setNeedsDisplay与setNeedsLayout的区别
- setNeedsDisplay和setNeedsLayout的区别
- IOS setNeedsDisplay 和 setNeedsLayout
- [IOS]setNeedsDisplay和setNeedsLayout
- iOS-UIView常用的setNeedsDisplay和setNeedsLayout
- UIView的setNeedsDisplay和setNeedsLayout区别
- UIView的setNeedsDisplay和setNeedsLayout方法区别
- UIView的setNeedsDisplay和setNeedsLayout区别
- iOS UIView setNeedsDisplay和setNeedsLayout
- 小胖说事6------iOS setNeedsDisplay和setNeedsLayout的用法
- iOS中 setNeedsDisplay和setNeedsLayout方法的不同
- iOS 关于ios中的setNeedsDisplay和setNeedsLayout
- 关于ios中的setNeedsDisplay和setNeedsLayout
- 关于ios中的setNeedsDisplay和setNeedsLayout
- 关于ios中的setNeedsDisplay和setNeedsLayout
- 关于ios中的setNeedsDisplay和setNeedsLayout
- 关于ios中的setNeedsDisplay和setNeedsLayout
- 软件测试
- 卡特兰数相关问题总结
- 获取 jquery 版本号
- Linux gcc编译提示:undefined reference to `sqrtf' collect2: error: ld returned 1 exit status
- sdut oj3341 数据结构实验之二叉树二:遍历二叉树
- ios setNeedsDisplay和setNeedsLayout的区别与用处
- 1041. Be Unique (20)-PAT甲级真题(Hash散列)
- 数据结构实验之二叉树的建立与遍历
- libevent例子--HTTP 服务器
- 输出CString
- 多表查询,嵌套查询
- hdu 2089 不要62(数位dp)
- Linux修改Tmpfs
- 数据结构实验之二叉树三:统计叶子数