- (void) drawGradientInRect: (CGRect) rect colorSpace: (CGColorSpaceRef) colorSpcae context: (CGContextRef) context { CGFloat startComponents[4] = { 254.0 / 255.0, 254.0 / 255.0, 254.0 / 255.0, 1.0 }; CGFloat endComponents[4] = { 206.0 / 255.0, 206.0 / 255.0, 206.0 / 255.0, 1.0 }; CGColorRef startColor = CGColorCreate (colorSpace, startComponents); CGColorRef endColor = CGColorCreate (colorSpace, endComponents); NSArray *array = [NSArray arrayWithObjects: (id)startColor, (id)endColor, nil]; CGGradientRef gradient = CGGradientCreateWithColors (colorSpace, (CFArrayRef)array, NULL); CGPoint endPoint = rect.origin; endPoint.y += rect.size.height; // Don't let the gradient bleed all over everything CGContextSaveGState (context); { CGContextClipToRect (context, rect); CGContextDrawLinearGradient (context, gradient, rect.origin, endPoint, 0); } CGContextRestoreGState (context); CGGradientRelease (gradient); CGColorRelease (startColor); CGColorRelease (endColor); } // drawGradientInRect