1> 我们只能在继承了 UIView 的子类中通过重写 drawRect: 方法来绘制图形
2> UIView 子类重写 drawRect: 方法时, 不需要调用父类方法 [super drawRect:rect]。如果子类继承自其它继承 UIView 的view类,则drawRect方法中需要调用父类方法[super drawRect:rect]。
3> drawRect方法不能手动直接调用,我们可以通过调用其它方法来实现drawRect方法的调用。如:在子类初始化时调用- (instancetype)initWithFrame:(CGRect)frame方法,且frame不为CGRectZero时, 或者通过自动布局设置是试图的相对位置。
4> 我们可以调用视图的 setNeedsDisplay 方法或 setNeedsDisplayInRect: 方法,但是该方法不会自己调用 drawRect: 方法,而是会标记视图,并在下一次循环更新的时候让视图通过 drawRect: 来进行重绘,前提是 rect 不为 CGRectZero。
网友评论