iOS view以及image的渐变色处理

1.设置view的渐变色

- (void)setGradient:(CGRect)frame view:(UIView *)view{
    //  创建 CAGradientLayer 对象
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    //  设置 gradientLayer 的 Frame
      gradientLayer.frame = frame;
    //  创建渐变色数组,需要转换为CGColor颜色
    UIColor * color1 = nil;
    UIColor * color2 = nil;
    color1 = [UIColor colorWithRed:21/255.0 green:126/255.0 blue:251/255.0 alpha:1.0];
    color2 = [UIColor colorWithRed:54/255.0 green:188/255.0 blue:153/255.0 alpha:1.0];
    gradientLayer.colors = @[(id)color1.CGColor,
                             (id)color2.CGColor];
    //  设置颜色变化点,取值范围 0.0~1.0
    //  gradientLayer.locations = @[@0 ,@1];
    //  设置渐变颜色方向,左上点为(0,0), 右下点为(1,1)
    gradientLayer.startPoint = CGPointMake(0, 0);
    gradientLayer.endPoint = CGPointMake(0, 1);
    //  添加渐变色到创建的 UIView 上去
    [view.layer addSublayer:gradientLayer];
}

2.制作一张带有渐变色的image

- (UIImage *)p_gradientFrame:(CGRect)frame
{
    //底部上下渐变效果背景
    //通过图片上下文设置颜色空间间
    UIGraphicsBeginImageContext(frame.size);
    //获得当前的上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    //创建颜色空间 /* Create a DeviceRGB color space. */
    CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
    //通过矩阵调整空间变换
    CGContextScaleCTM(context, frame.size.width, frame.size.height);
    //通过颜色组件获得渐变上下文
    CGGradientRef backGradient;
    CGFloat colors[] = {
            83/255.0, 178/255.0, 253/255.0, 1.0,
            41/255.0, 123/255.0, 251/255.0, 1.0,
        };
        backGradient = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));
    //释放颜色渐变
    CGColorSpaceRelease(rgb);
    //通过上下文绘画线色渐变 
    //设置渐变颜色方向,左上点为(0,0), 右下点为(1,1)
    CGContextDrawLinearGradient(context, backGradient, CGPointMake(0, 0.5), CGPointMake(1, 0.5), kCGGradientDrawsBeforeStartLocation);
    //通过图片上下文获得照片
    return UIGraphicsGetImageFromCurrentImageContext();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、奇迹 1、回老家这几天,我和老公一分现金都没带,但都被照顾的好好的,三餐都有人请吃,晚上还有过生日的老板请看现...
    我是喜悦阅读 326评论 0 0
  • 今日说说我心事。 老公,我想对你说: 最近我们可能是压力都有些大,脾气也都大,动不动就吵,吵几句互不理睬,闷闷不乐...
    追逐晨风阅读 308评论 0 3
  • 一直以来 北上广深是一线城市的代名词 其他城市都是浮云 现在却大不同了 一些潜在的二线城市 正在跻身其中 如今,越...
    小Z说道阅读 514评论 0 2
  • 一个人的空间,似乎孤单,却仿佛充实;一个人的季节,似乎萧条,却好似繁华;一个人的路,似乎寂寞,却好像洒脱。 ...
    8debb91bc930阅读 314评论 0 0

友情链接更多精彩内容