setNeedsDisplay和setNeedsDisplay和layoutIfNeeded关系
2016-04-05 15:30
281 查看
1.UIView的setNeedsDisplay和setNeedsLayout方法
*首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews,
就可以 处理子视图中的一些数据。
综上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据。*
setNeedsLayout
//注意一下这句话的意思:调用了layoutSubViews进行布局,但是页面不会重新刷新,还是原来的样子,就好像暂停了一般,必须使用layoutIfNeeded才会刷新,所以setNeedsLayout就好像设置了一个标记,等待layoutIfNeeded去开动
*标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用
配合layoutIfNeeded立即更新*
layoutIfNeeded
如果,有需要刷新的标记,立即调用layoutSubviews进行布局
*首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews,
就可以 处理子视图中的一些数据。
综上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据。*
setNeedsLayout
//注意一下这句话的意思:调用了layoutSubViews进行布局,但是页面不会重新刷新,还是原来的样子,就好像暂停了一般,必须使用layoutIfNeeded才会刷新,所以setNeedsLayout就好像设置了一个标记,等待layoutIfNeeded去开动
*标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用
配合layoutIfNeeded立即更新*
layoutIfNeeded
如果,有需要刷新的标记,立即调用layoutSubviews进行布局
相关文章推荐
- Win7系统开机提示"可能需要其他登入信息"的解决方法
- ArchLinux mount U盘
- Android 简单的图片渐变(变亮)和handler的使用
- Java虚拟机的JVM垃圾回收机制
- git设置忽略文件
- 关于链表、树等数据结构中常见的二级指针
- javascript保存excel
- 大数据 --> Spark和Hadoop作业之间的区别
- iOS-Bug收集:CocoaPods 错误 target overrides the `OTHER_LDFLAGS`...
- nginx-nginx环境下润乾报表“+”号重复请求
- Running migrations: No migrations to apply.(django不能创建数据库中的表的问题)
- Java NIO系列教程(八) SocketChannel
- 【杭电-oj】-2719-特定字符转换成非字符
- GPU初始化和启动流程(r600)
- Linux下对MySql数据库备份与恢复
- eclipse运行maven的jetty插件内存溢出
- webpack echarts配置实例
- 15个实用的PHP正则表达式
- HDU 1010 Tempter of the Bone dfs 奇偶剪枝
- wifidog 源码初分析(二)