CoreGraphics ドロップシャドウ

CoreGraphicsには, 影をつける機能として,Drop ShadowがつけられるAPIがあります。

CGContextSetShadowWithColorです。
ちなみに, CGContextSetShadowというのもあります。これだと黒い影をつけるだけです。

サンプル

- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();

// Drawing code
UIColor* iconBottomShadow = [UIColor colorWithRed: 1 green: 1 blue: 1 alpha: 0.8];
CGSize iconBottomShadowOffset = CGSizeMake(0.1, 2.1);
CGFloat iconBottomShadowBlurRadius = 4;
CGContextSetShadowWithColor(context, iconBottomShadowOffset, iconBottomShadowBlurRadius, iconBottomShadow.CGColor);

UIBezierPath* shadowRectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(6, 3, 57, 57) cornerRadius: 11];
[shadowRectanglePath fill];
}

ベジエ曲線でiPhoneっぽいアイコンを作ったところに, 白っぽい影がかかります。

dropshadow