http://my.oschina.net/CarlHuang/blog/138766
使用CoreGraphics 绘制渐变效果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
-(
void
)drawRect:(CGRect)rect
{
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
UIColor * startColor = [UIColor blueColor];
CGFloat * startColorComponents = (CGFloat *)CGColorGetComponents([startColor CGColor]);
UIColor * endColor = [UIColor greenColor];
CGFloat * endColorComponents = (CGFloat *)CGColorGetComponents([endColor CGColor]);
CGFloat colorComponents[8] = {
startColorComponents[0],
startColorComponents[1],
startColorComponents[2],
startColorComponents[3],
endColorComponents[0],
endColorComponents[1],
endColorComponents[2],
endColorComponents[3]
};
CGFloat colorIndices[2] = {0.0f,1.0f};
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, (
const
CGFloat *)&colorComponents, (
const
CGFloat *)&colorIndices, 2);
CGColorSpaceRelease(colorSpace);
CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGPoint startPoint, endPoint;
startPoint = CGPointMake(0.0f, screenBounds.size.height/2.0f);
endPoint = CGPointMake(screenBounds.size.width, startPoint.y);
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextDrawLinearGradient(currentContext,gradient , startPoint, endPoint, 0);
CGGradientRelease(gradient);
}
|