绘图中的drawRect

rect参数:代表的是当前view的bounds

1 为什么要在drawRect方法里面写绘图代码

因为只有在这个方法中才能获取到当前view相关的图形上下文对象

有了这个图形上写文对象后才能进行绘图操作

2 为什么是在这个方法中能够获取图形上下文?

图形上下文对象不是我们自己创建的,仅仅是获取,图形上下文对象是系统创建的

而且只萌在drawRect方法中获取

3 注意:我们不能直接去调用一个view的drawRect:方法?

因为这个方法的执行,在当前的view第一次显示的时候,会调用一次,是系统执行的

系统执行的时候,可以保证里面的图形上下文对象真的创建好了

如果手动直接调用,自己控制,并不能保证里面的图形上下文对象创建ok

4 如果需要调用drawRect方法:

可以通过

[self setNeedsDisplay]; //直接全部重绘

[self setNeedsDisplayInRect:(cgRect)];  //直接把指定区域里面的内容重绘,让自定义view执行重绘操作

我们调用这两个方法,系统内部会去调用view的drawRect方法实现重绘

原文地址:https://www.cnblogs.com/ritian/p/iOS.html