美文网首页ios
iOS渐变色背景绘制

iOS渐变色背景绘制

作者: Kadima_章鱼 | 来源:发表于2016-06-05 11:29 被阅读1277次

一直绘图这方面知识就记的不牢固,每次画完过段时间又给忘了怎么画咯,最近需要画下渐变色,特此记录下。

一、使用CAGradientLayer

//  创建 CAGradientLayer 对象

CAGradientLayer *gradientLayer = [CAGradientLayer layer];

//  设置 gradientLayer 的 Frame

gradientLayer.frame = self.bounds;

//  创建渐变色数组,需要转换为CGColor颜色

gradientLayer.colors = @[(id)kColorWithRGB(243, 199, 161).CGColor,

(id)kColorWithRGB(252, 100, 25).CGColor];

//  设置颜色变化点,取值范围 0.0~1.0

//        gradientLayer.locations = @[@0 ,@1];

//  设置渐变颜色方向,左上点为(0,0), 右下点为(1,1)

gradientLayer.startPoint = CGPointMake(0, 0);

gradientLayer.endPoint = CGPointMake(0, 1);

//  添加渐变色到创建的 UIView 上去

[self.layer addSublayer:gradientLayer];

二、code

- (void)drawRect:(CGRect)rect {

// Drawing code

CGContextRef context = UIGraphicsGetCurrentContext();

// 绘制颜色渐变

// 创建色彩空间对象

CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();

// 创建起点颜色

CGColorRef beginColor = CGColorCreate(colorSpaceRef, (CGFloat[]){243/255.0f, 199/255.0f, 161/255.0f, 1});

// 创建终点颜色

CGColorRef endColor = CGColorCreate(colorSpaceRef, (CGFloat[]){252/255.0f, 100/255.0f, 25/255.0f, 1});

// 创建颜色数组

CFArrayRef colorArray = CFArrayCreate(kCFAllocatorDefault, (const void*[]){beginColor, endColor}, 2, nil);

// 创建渐变对象

CGGradientRef gradientRef = CGGradientCreateWithColors(colorSpaceRef, colorArray, (CGFloat[]){

0.0f,     // 对应起点颜色位置

1.0f    // 对应终点颜色位置

});

// 释放颜色数组

CFRelease(colorArray);

// 释放起点和终点颜色

CGColorRelease(beginColor);

CGColorRelease(endColor);

// 释放色彩空间

CGColorSpaceRelease(colorSpaceRef);

CGContextDrawLinearGradient(context, gradientRef, CGPointMake(0, 0), CGPointMake(0, 1), 0);

// 释放渐变对象

CGGradientRelease(gradientRef);

}

相关文章

网友评论

    本文标题:iOS渐变色背景绘制

    本文链接:https://www.haomeiwen.com/subject/rjhrdttx.html