NSShadow を使って影を付けてみる。元ネタは ADCのドキュメントより。
ADC:Adding Shadows to Drawn Paths
ソース:Shadow.zip
MyView.h
- (void)drawRect:(NSRect)rect {
// Drawing code here.
[NSGraphicsContext saveGraphicsState];
NSShadow* shadow = [[NSShadow alloc] init];
[shadow setShadowOffset:NSMakeSize(10.0, -10.0)];
[shadow setShadowBlurRadius:3.0];
[shadow setShadowColor:[[NSColor blackColor] colorWithAlphaComponent:0.3]];
[shadow set];
[_image drawInRect:NSMakeRect(50, 50, 200, 180)
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1.0];
[NSGraphicsContext restoreGraphicsState];
[shadow release];
}
NSShadowを作り、#set を実行する。その後の描画に対して影が付く。実に簡単。よくできているな。
- - - -
さて次回はRoundRectにこれを組み合わせてみる。