2012-05-20 43 views
0

我想实现的XCode 4类似的人一个的TabBar图像掩码:剪辑与可可

enter image description here

我可以实现自定义图像的简单标签控制,但我想以编程方式应用内部阴影效果。我希望仅使用一种颜色提供简单的图标,而没有任何渐变或阴影效果,基本上只是图标的形状。然后我会把它涂成黑色,模糊它并绘制它。在绘制过程中,我需要剪裁到原始形状。有人能指出我正确的方向/课程吗?我搜索了可可绘图文档,但没有找到任何东西。谢谢!

+0

我已经回答了一个类似的问题[here](http://stackoverflow.com/a/7138497/573626)。 – omz

+0

太棒了,这正是我所期待的,谢谢! – DrummerB

回答

4

NSImage有一个“模板图像”的概念。这是一个黑色和清晰的图像,适用于反转,压花,雕刻等各种处理。

NSImage 名称以“Template”结尾的名称将自动标记为模板图像。否则,您可以将图像标记为-setTemplate:的模板。您可以使用-isTemplate来检查图片是否为模板。

作为模板的图像本身并不会改变图像的呈现方式。代码可以查看一些元数据,并决定改变它呈现图像的方式。关于如何执行该呈现没有太多文档。相反,您应该利用NSCell提供的内置支持,这是AppKit中唯一一个关注图像是否为模板的类。

这在older AppKit release notes中有更详细的描述。

也就是说,如果您仍在寻找制作图像蒙版并对其进行剪裁,则可能需要下拉到Core Graphics。 CGImage直接支持蒙版图像的概念。 CGContext支持与CGContextClipToMask()剪贴蒙版图像。请参阅Quartz 2D Programming Guide