Айфон дроу тень на круг - PullRequest
2 голосов
/ 18 января 2010

У меня нарисован простой круг в моем подклассе, как показано нижеКак добавить легкую тень на дно цирка?

 - (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?
   }

Ответы [ 2 ]

4 голосов
/ 18 января 2010

Чтобы следовать ответу 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 () также можно использовать с цветом, отличным от черного, если вы хотите добавить эффект свечения к этому рисунку.

1 голос
/ 18 января 2010

См. Quartz2D Shadows guide.

CGContextSetShadowWithColor (myContext, myShadowOffset, 5, myColor);
...