UIView的绘制

iOS是MVC模式,其中View是UIView或者UIView的子类。如果应用需要实现特殊的效果,通常都是通过自定义UIVew子类来实现的。UIView的父类是UIResponder,顾名思义是用于响应事件,而UIView可以专门来“画图”了(实际上是通过CALayer)。那么一个UIView对象是如何绘制的?

在UIView.h文件中,Apple告诉我们:

/* To render a window, the following passes will occur, if  necessary.  

 update constraints
 layout
 display

 Please see the conceptual documentation for a discussion  of these methods.
 */    

也就是三步:更新约束(计算坐标、尺寸)、布局(排列子视图)、显示(绘制)。
相关的方法主要是updateConstraintslayoutSubviewsdrawRect,这些方法都是由系统在特定情况下进行调用,不需要我们自己调用。如果数据发生了变化想重新渲染,可以使用setNeedsUpdateConstraintssetNeedsLayoutsetNeedsDisplay设置标志。

下面是一个简单测试:

UIView的绘制_第1张图片
调用顺序

如有错误,欢迎指出!

你可能感兴趣的:(UIView的绘制)