CoreGraphics 渐变(2)

 使用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);
     
}

你可能感兴趣的:(ios,Objective-C,xcode,渐变,coreGraphics)