drawRect函数
主要负责iOS的绘图操作,程序会自动调用此方法进行绘图。我在这个函数中绘制渐变背景色。
方法定义:
- -(void)drawRect:(CGRect)rect;
重写此方法,执行重绘任务 - -(void)setNeedsDisplay;
标记为需要重绘,异步调用drawRect - -(void)setNeedsDisplayInRect:(CGRect)rect;
标记为需要局部重绘
调用机制:
- 系统自动调用,在Controller->viewDidLoad之后。但是如果在UIView初始化时没有设置rect大小,将直接导致drawRect不被自动调用。
- 直接调用setNeedsDisplay,或者setNeedsDisplayInRect:触发drawRect:,但是有个前提条件是rect不能为0.。
绘制方法
利用CALayer或CGGradientRef绘制。
CALayer
利用CALayer的子类CAGradientLayer绘制渐变背景色。
// 初始化
CAGradientLayer* layer = [[CAGradientLayer alloc] init];
// 颜色数组,设置需要过渡的颜色(CGColor对象)。
layer.colors = @[(__bridge id)[UIColor colorWithRed:0.439f green:0.522f blue:0.714f alpha:1].CGColor, (__bridge id