0

I'm trying to implement a tabbar similar to the ones in XCode 4:

enter image description here

I could implement a simple tab control with custom images, but I'd like to apply that inner shadow effect programmatically. I'd like to supply simple icons only using one color without any gradient or shadow effect, basically just the shape of the icon. Then I would paint it black, blur it and draw it. During drawing I need to clip to the original shape however. Could someone point me to the right direction/classes? I searched through Cocoa Drawing documentation but didn't find anything. Thanks!

4

1 に答える 1

4

NSImage「テンプレート画像」という概念があります。反転、エンボス、彫刻などの各種加工に適した黒く鮮明な画像です。

NSImage名前が「Template」で終わる名前でロードされたものは、テンプレート イメージとして自動的にマークされます。それ以外の場合は、 を使用して画像をテンプレートとしてマークできます-setTemplate:。を使用して、画像がテンプレートかどうかを確認できます-isTemplate

テンプレートである画像は、本質的に画像のレンダリング方法を変更しません。これは、コードが画像を表示する方法を変更することを決定できるメタデータです。そのレンダリングがどのように正確に実行されるべきかについてのドキュメントはあまりありません。NSCellむしろ、画像がテンプレートであるかどうかに注意を払う AppKit の唯一のクラスであるによって提供される組み込みサポートを利用することになっています。

これについては、古い AppKit リリース ノートで詳しく説明されています。

とはいえ、イメージ マスクの作成とそのクリッピングをまだ探している場合は、Core Graphics にドロップダウンする必要があるかもしれません。 CGImageマスク イメージの概念を直接サポートします。 CGContextを使用したマスク イメージへのクリッピングをサポートしCGContextClipToMask()ます。Quartz 2D プログラミング ガイドを参照してください。

于 2012-05-20T19:28:43.100 に答える