2

我在我的子类 uiview 中画了一个简单的圆圈,如下所示。如何在圆圈底部添加一个轻微的阴影?

 - (void)drawRect:(CGRect)rect
   {
     CGContextRef ctx = UIGraphicsGetCurrentContext();
     UIGraphicsPushContext(ctx);
     CGContextSetRGBFillColor(ctx, 1.0f, 1.0f, 1.0f, 1.0f);  // white color
     CGContextFillEllipseInRect(ctx, CGRectMake(10.0f, 10.0f, 100.0f, 100.0f));  // a white filled circle with a diameter of 100 pixels, centered in (60, 60)
     UIGraphicsPopContext();

     //Now what here?
   }
4

2 回答 2

4

要遵循 slf 的回答,您可以将上面的代码替换为:

- (void)drawRect:(CGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    UIGraphicsPushContext(ctx);
    CGContextSetRGBFillColor(ctx, 1.0f, 1.0f, 1.0f, 1.0f);  // white color
    CGContextSetShadow(ctx, CGSizeMake(2.0f, 2.0f), 2.0f);
    CGContextFillEllipseInRect(ctx, CGRectMake(10.0f, 10.0f, 100.0f, 100.0f));  // a white filled circle with a diameter of 100 pixels, centered in (60, 60)
    UIGraphicsPopContext();
}

这将创建一个阴影,该阴影在圆圈右侧向下偏移 2 个像素,模糊为 2 个像素。您可以更改这些值以创建您想要的效果。CGContextSetShadowWithColor() 也可以与黑色以外的颜色一起使用,如果您想为此绘图添加发光效果。

于 2010-01-18T03:19:06.700 回答
1

请参阅Quartz2D 阴影指南。

CGContextSetShadowWithColor (myContext, myShadowOffset, 5, myColor);
于 2010-01-18T00:27:22.960 回答