我已经搜索过,我似乎无法找到能够在下面的屏幕截图中显示效果的代码:
http://i.stack.imgur.com/MPAiA.png
我已经设法绘制圆圈并获得一个简单的从上到下渐变的工作,但我无法理解如何获得以下内容,所有帮助都非常感谢。
这就是我从头到底简单的渐变:
CGColorSpaceRef baseSpace = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColorComponents(baseSpace, colors, NULL, 2);
CGColorSpaceRelease(baseSpace), baseSpace = NULL;
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextAddEllipseInRect(context, rect);
CGContextClip(context);
CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect));
CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect));
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
CGGradientRelease(gradient), gradient = NULL;
CGContextRestoreGState(context);
CGContextAddEllipseInRect(context, rect);
CGContextDrawPath(context, kCGPathStroke);
答案 0 :(得分:3)
所以你想要一个径向渐变。但是你正在画一个线性渐变。这太傻了。如果想要径向渐变,请绘制径向渐变!
另一种可能性(相当简单)是使用CIFilter绘制径向渐变: