这段时间在家里要趁机好好补补专业知识了,关于iOS的各个知识点都要一一接触,深入的问题原理的问题需要在第二轮的学习中掌握,这轮只是扫盲。

    关于iOS渐变的绘制,在项目中是十分常见的。这个demo只是其中的一种方式而已。

    //获得屏幕上下文
        CGContextRef currentContext = UIGraphicsGetCurrentContext();
        
        CGContextSaveGState(currentContext);
    
        CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
        CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, components, NULL, 2);
        
        CGPoint startPoint = CGPointMake(0, 0);
        CGPoint endPoint = CGPointMake(bounds.size.width / 2, bounds.size.height / 2);
        
        //对图形上下文的范围进行剪切
        CGContextClipToRect(currentContext, CGRectMake(0, 0, bounds.size.width/2, bounds.size.height/2));
        
        //这里在图形上下文中对startPoint到endPoint范围进行屏幕的图形绘制
        CGContextDrawLinearGradient(currentContext, gradient, startPoint, endPoint, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
        
        CGContextRestoreGState(currentContext);
        CGGradientRelease(gradient);
        CGColorSpaceRelease(colorSpace);

     

    效果如下: