绘制线性渐变

 /**

 大多数iOS & MAC都能使用的框架,都是C语言的,在使用OC时,因为ARC自动管理内存,通常不需要考虑内存管理

 如果在使用C语言框架时,绝大多数,是需要管理内存的!

 创建对象时,如果函数中包含"Create""Retain""Copy"这三个单词,都需要release释放内存

 使用“静态分析工具”,可以“从代码结构上分析”程序是否有可能出现内存泄露! 

 提示:在程序发布前,最好能够使用静态内存分析工具,检测一下代码!  

// 1. 上下文

    CGContextRef ctx = UIGraphicsGetCurrentContext();    

    CGContextSaveGState(ctx);

    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(110, 100, 100, 100)];

    [path addClip]; 

    // 2. 颜色(色彩)空间,在计算机领域,统一都使用RGB作为颜色空间,CMYK色彩空间是用来打印

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    // 3. 渐变

    // 数组名是指向数组第一个元素的指针

    // 每4个数表示一个颜色 r g b alpha

    // 从红色变到白色

    CGFloat components[] = {1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0};

    CGFloat locations[] = {0.0, 1.0};

    CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, components, locations, 2);

    // 4. 绘制线性渐变

    CGContextDrawLinearGradient(ctx, gradient, CGPointZero, CGPointMake(rect.size.width, rect.size.height), kCGGradientDrawsAfterEndLocation);

    // 5. 释放内存

    CGGradientRelease(gradient);

    CGColorSpaceRelease(colorSpace);

    // 恢复上下文

    CGContextRestoreGState(ctx);

原文地址:https://www.cnblogs.com/bluceZ/p/4629375.html