关闭

图形渐变效果(二)

394人阅读 评论(0) 收藏 举报
分类:

感谢网上亲们的资源,简单的实现线性渐变效果,分一二主要是对照两个不同的效果:


代码:

- (void)drawRect:(CGRect)rect

{

    //创建上下文

    CGContextRef currentContext = UIGraphicsGetCurrentContext();

    

    CGContextSaveGState(currentContext);

    

    //色彩空间

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    //起点色

    UIColor *staColor = [UIColor redColor];

    CGFloat *staColorComponents = (CGFloat *)CGColorGetComponents([staColor CGColor]);

    

    //终点色

    UIColor *endColor = [UIColor greenColor];

    CGFloat *endColorComponents = (CGFloat *)CGColorGetComponents([endColor CGColor]);

    

    //获取每种颜色分量写入数组中

    CGFloat colorComponents[8] = {

        staColorComponents[0],

        staColorComponents[1],

        staColorComponents[2],

        staColorComponents[3],

        endColorComponents[0],

        endColorComponents[1],

        endColorComponents[2],

        endColorComponents[3]

    };

    

    //渐变位置设置

    CGFloat colorIndices[2] = {0.0f,0.7f};

    

    //构建渐变对象句柄

    CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, (const CGFloat*)&colorComponents, (const CGFloat*)&colorIndices,2);

    

    //释放色彩空间

    CGColorSpaceRelease(colorSpace);

    

    CGPoint staPoint,endPoint;

    staPoint = CGPointMake(20, 30);

    endPoint = CGPointMake(20, 80);

    CGContextDrawLinearGradient(currentContext, gradient, staPoint, endPoint, 0);

    CGGradientRelease(gradient);

    CGContextRestoreGState(currentContext);


}



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:51770次
    • 积分:995
    • 等级:
    • 排名:千里之外
    • 原创:45篇
    • 转载:33篇
    • 译文:0篇
    • 评论:6条
    最新评论