drawRect: 和 - (void)setNeedsDisplay 的一些理解
来源:互联网 发布:2g和4g网络的区别 编辑:程序博客网 时间:2024/05/02 00:00
http://www.cnblogs.com/pengyingh/articles/2383688.html
点击button时,则系统自动调用drawRect重绘
- (void)clicked
{
[self setNeedsDisplay]; //---------强制重绘显示----调用drawRect方法
}
- (void)drawRect:(CGRect)rect
{
NSLog(@"---------drawRect-----setNeedsDisplay----");
}
1、 drawRect: is invoked automaticall,never call it directly!!
2、 When a view needs to be redrawn,use:
- (void)setNeedsDisplay;
3、在非主线程中调用,需使用如下方法:
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
4、setNeedsDisplay是不阻塞的,
需要自己制造阻塞,
setNeedsDisplay我理解就是告诉系统,等会帮哥把这块重新画一下。
系统就知道了,等系统有空了,他就一起画了,
如果想立即画出来,可能要用setNeedsLayout,
或者不用drawInRect系列的方式,直接改view.image或者文字,加动画等方式实现吧。
5、setNeedsDisplay和layoutSubViews
首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调 用layoutSubViews,就可以处理子视图中的一些数据。
宗上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据。
- drawRect: 和 - (void)setNeedsDisplay 的一些理解
- drawRect: 和 - (void)setNeedsDisplay 的一些理解
- drawRect: 和 - (void)setNeedsDisplay 的一些理解
- drawRect: 和 - (void)setNeedsDisplay 的一些理解
- UIView的drawRect: 和 - (void)setNeedsDisplay 的一些理解
- UIView的drawRect: 和 - (void)setNeedsDisplay 的一些理解
- UIView的drawRect: 和 - (void)setNeedsDisplay 的一些理解
- iOS UIView的drawRect方法 - setNeedsDisplay和setNeedsDisplayInRect.
- layoutSubviews和setNeedsLayOut,drawRect和setNeedsDisplay
- setNeedsDisplay,setNeedsLayout,layoutSubviews,drawRect的调用关系
- 关于setNeedsDisplay、setNeedsLayout方法,UIView的layoutSubviews和drawRect方法何时调用
- static void SetSysClockTo72(void)的一些理解
- setNeedsDisplay和setNeedsLayout 区别 layoutSubviews 和drawRect被调用时机
- - (void)setNeedsDisplay得作用和用法
- - (void)setNeedsDisplay得作用和用法
- iOS UIView中 - (void)drawRect:(CGRect)rect;和-(void)ViewLayoutSubViews;的调用时机
- layoutSubviews、setNeedsLayout、setNeedsDisplay、drawRect区别及调用的时机
- UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
- Http post方式传递参数的格式
- 算法篇-数学基础-Cantor的数表
- 求阶乘N!末尾0的个数
- SpringMVC介绍之视图解析器ViewResolver
- 回溯法解决问题的3个步骤
- drawRect: 和 - (void)setNeedsDisplay 的一些理解
- 五台山地区草地生态系统服务价值估算
- Android基础:代码中实现界面动态布局
- 初窥Hadoop
- LBS 与 GPS 定位之间的区别
- SQL必知必会 笔记 第一章 了解SQL
- ambari编译前环境准备
- Cocos2d-x中__Dictionary容器以及实例介绍 [转载]
- 二层交换基本原理