【问题标题】:Draw radial Gradient on UIView (circle)在 UIView 上绘制径向渐变(圆形)
【发布时间】:2013-10-26 08:47:02
【问题描述】:

不幸的是,我无法通过在 UIView 中绘制径向渐变来找到解决方案。

看...这就是我想画的方式(这是在PS中制作的):

但我目前被困在这个问题上:

这是我的代码:

CGGradientRef radialGradient;
CGColorSpaceRef rgbColorspace;

size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
const CGFloat *colorComponents = CGColorGetComponents(textColor.CGColor);
CGFloat components[8] = { colorComponents[0], colorComponents[1], colorComponents[2], 1.0,  // Start color
    1.0, 1.0, 1.0, 1.0 }; // End color

rgbColorspace = CGColorSpaceCreateDeviceRGB();
radialGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations);

CGRect currentBounds = self.bounds;
CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMidY(currentBounds));

CGContextDrawRadialGradient(myContext, radialGradient, midCenter, 8.0, midCenter, 1.0, kCGGradientDrawsAfterEndLocation);



CGGradientRelease(radialGradient);
CGColorSpaceRelease(rgbColorspace);

我希望有人能给我正确的提示;)

周末愉快, 克里斯

【问题讨论】:

  • 您是否尝试过使用超过 2 个位置?
  • 不...让我测试一下:)

标签: ios objective-c uiview gradient


【解决方案1】:

基本上,您需要使用 2 个以上的位置。使用 2 个位置,您可以在开始位置和结束位置之间获得恒定梯度。您的示例图像显示了大多数位置的起始颜色,直到结束,而结束颜色则更苍白。查看示例图像,您至少需要 3 个位置并更改结束颜色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2013-06-24
    • 2017-03-04
    • 1970-01-01
    相关资源
    最近更新 更多