绘制渐变色

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

- (void)drawRect:(CGRect)rect {
    // Drawing code
    
    //获取上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSaveGState(context);
    
    //创建颜色空间
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    
    //设置开始颜色和结束颜色
    UIColor *startColor = [UIColor blueColor];
    CGFloat *startC = (CGFloat *)CGColorGetComponents(startColor.CGColor);
    
    UIColor *endColor = [UIColor redColor];
    CGFloat *endC = (CGFloat *)CGColorGetComponents(endColor.CGColor);
    
    //获取颜色分量,存入数组
    CGFloat compoents[8] = {
        startC[0],startC[1],startC[2],startC[3],endC[0],endC[1],endC[2],endC[3],};
    
    //指定渐变开始的位置和结束的位置
    CGFloat colorIndices[2] = {
    
        0.0f,1.0f,};
    
    //gradient指向渐变对象
    CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace,(const CGFloat *)&compoents,(const CGFloat *)colorIndices,2);
    CGColorSpaceRelease(colorSpace);
 
    CGPoint startPoint,endPoint;
    startPoint = CGPointMake(0,64);
    endPoint = CGPointMake([UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.height);
    
                                                                        //扩展整个渐变之前的所有点和之后的所有点
    CGContextDrawLinearGradient(context,gradient,startPoint,endPoint,kCGGradientDrawsBeforeStartLocation|kCGGradientDrawsAfterEndLocation);
    CGGradientRelease(gradient);
    CGContextRestoreGState(context);
    
}

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...