zoukankan      html  css  js  c++  java
  • 绘制线性渐变

     /**

     大多数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);

  • 相关阅读:
    centos网卡一致性命名规则
    CloudBoot裸机部署服务器
    vmware-nic teaming
    电商 Excel 列 连接,类似SQL里面的 join
    Layui 多选
    电商工具 谷歌插件 版本 2021-06-11
    电商工具 谷歌插件 数据抓取 数据下载 生意参谋的访客数据、淘宝后台订单、主图、详情图、评论、物流、直通车数据
    其它 VS Code 配置选中的文字
    C# 跨域
    PS 字体的使用
  • 原文地址:https://www.cnblogs.com/bluceZ/p/4629375.html
Copyright © 2011-2022 走看看