1.通過CAGradientLayer 設置漸變的背景产弹。
/**
* 1.通過CAGradientLayer 設置漸變的背景。
*/
CAGradientLayer *layer = [CAGradientLayer new];
//colors存放漸變的顏色的數(shù)組
layer.colors=@[(__bridge id)[UIColor greenColor].CGColor,(__bridge id)[UIColor whiteColor].CGColor];
/**
* 起點和終點表示的坐標系位置埃撵,(0,0)表示左上角,(1,1)表示右下角
*/
layer.startPoint = CGPointMake(0.5, 0);
layer.endPoint = CGPointMake(0.5, 1);
layer.frame = self.bounds;
[self.layer addSublayer:layer];
方法2.CGGradientRef
- (void)drawRect:(CGRect)rect{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGColorSpaceRef colorSpace=CGColorSpaceCreateDeviceRGB();
/*指定漸變色
space:顏色空間
components:顏色數(shù)組,注意由于指定了RGB顏色空間虽另,那么四個數(shù)組元素表示一個顏色(red暂刘、green、blue捂刺、alpha)谣拣,
如果有三個顏色則這個數(shù)組有4*3個元素
locations:顏色所在位置(范圍0~1),這個數(shù)組的個數(shù)不小于components中存放顏色的個數(shù)
count:漸變個數(shù)族展,等于locations的個數(shù)
*/
CGFloat compoents[12]={
0,0,0,1,
0.8,0.1,0.5,1.0,
1.0,1.0,1.0,1.0
};
//設置漸變的位置
CGFloat locations[3]={0,0.3,1.0};
//創(chuàng)建梯度上下文
CGGradientRef gradient= CGGradientCreateWithColorComponents(colorSpace, compoents, locations, 3);
/*繪制線性漸變
context:圖形上下文
gradient:漸變色
startPoint:起始位置
endPoint:終止位置
options:繪制方式,kCGGradientDrawsBeforeStartLocation 開始位置之前就進行繪制森缠,到結(jié)束位置之后不再繪制,
kCGGradientDrawsAfterEndLocation開始位置之前不進行繪制仪缸,到結(jié)束點之后繼續(xù)填充
startPoint endPoint 不同與上一種方法贵涵,指的是真正的坐標
*/
CGContextDrawLinearGradient(ctx, gradient, CGPointMake(self.frame.size.width/2, 0), CGPointMake(self.frame.size.width/2,self.frame.size.height), kCGGradientDrawsAfterEndLocation);
//釋放顏色空間
CGColorSpaceRelease(colorSpace);
}
這里面也有用,暫時保存