使用CoreGraphics 绘制渐变效果。
-(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); }