« Cocoa: Xcode4.2.1の方が使いやすいかも | トップページ | Cocoa: ヒレガス本は第26章まで »

2012年4月 4日 (水)

Cocoa: 文字に対するDropShadow

ヒレガス本の20.7節のチャレンジ1。

- (id)init;
- (void)setShadowOffset:(NSSize)offset;
- (void)setShadowBlurRadius:(float)val;
- (void)setShadowColor:(NSColor *)color;

このヒントじゃ全然判りませんよ。
initがあるって事は、alloc してinitしろって事なんでしょうけど。
背景色と同じようにNSShadowクラスのインスタンスを生成してsetしなきゃだったなんて。

xcatsanさんの(旧)Cocoaの日々:NSShadowを読んで、ようやく納得しました。

- (void)drawStringCenteredIn:(NSRect)r

このメソッド内でdrawAtPoint:を送信してる箇所の前後にロジックを挿入。

    [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];

    [string drawAtPoint:strOrigin withAttributes:attributes]; // この行の前後に追加

    [NSGraphicsContext restoreGraphicsState];
    [shadow release];

こんな感じで表示できます。
後はパラメータをいじれるようにスライダー付けても面白いかも。

« Cocoa: Xcode4.2.1の方が使いやすいかも | トップページ | Cocoa: ヒレガス本は第26章まで »

仕事部屋」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/564846/56819888

この記事へのトラックバック一覧です: Cocoa: 文字に対するDropShadow:

« Cocoa: Xcode4.2.1の方が使いやすいかも | トップページ | Cocoa: ヒレガス本は第26章まで »

2014年11月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
サイト内検索
ココログ最強検索 by 暴想

Twitter

開発Twitter

無料ブログはココログ