关闭

图形渐变效果(一)

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

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


代码:

- (void)drawRect:(CGRect)rect

{

    //创建上下文

    CGContextRef currentContext =UIGraphicsGetCurrentContext();

    

    //色彩空间

    CGColorSpaceRef colorSpace =CGColorSpaceCreateDeviceRGB();

    //起点色

   UIColor *staColor = [UIColorredColor];

   CGFloat *staColorComponents = (CGFloat *)CGColorGetComponents([staColorCGColor]);

    

    //终点色

   UIColor *endColor = [UIColorgreenColor];

   CGFloat *endColorComponents = (CGFloat *)CGColorGetComponents([endColorCGColor]);

    

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

   CGFloat colorComponents[8] = {

        staColorComponents[0],

        staColorComponents[1],

        staColorComponents[2],

        staColorComponents[3],

        endColorComponents[0],

        endColorComponents[1],

        endColorComponents[2],

        endColorComponents[3]

    };

    

    //渐变位置设置

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

    

    //构建渐变对象句柄

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

    

    //释放色彩空间

    CGColorSpaceRelease(colorSpace);

    

   CGRect screenBounds = [selfbounds];

   CGPoint staPoint,endPoint;

    staPoint =CGPointMake(0.0f, screenBounds.size.height);

    endPoint =CGPointMake(screenBounds.size.width, staPoint.y);

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

    CGGradientRelease(gradient);

}


0
0

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