我正在尝试实现一个类似于 XCode 4 中的选项卡栏:
我可以使用自定义图像实现一个简单的选项卡控件,但我想以编程方式应用该内部阴影效果。我想只使用一种颜色提供简单的图标,没有任何渐变或阴影效果,基本上只是图标的形状。然后我会把它漆成黑色,模糊它并绘制它。但是,在绘图期间,我需要剪辑到原始形状。有人可以指出我正确的方向/课程吗?我搜索了可可绘图文档,但没有找到任何东西。谢谢!
我正在尝试实现一个类似于 XCode 4 中的选项卡栏:
我可以使用自定义图像实现一个简单的选项卡控件,但我想以编程方式应用该内部阴影效果。我想只使用一种颜色提供简单的图标,没有任何渐变或阴影效果,基本上只是图标的形状。然后我会把它漆成黑色,模糊它并绘制它。但是,在绘图期间,我需要剪辑到原始形状。有人可以指出我正确的方向/课程吗?我搜索了可可绘图文档,但没有找到任何东西。谢谢!
NSImage
有一个“模板图像”的概念。这是一张黑色清晰的图像,适用于反转、压花、雕刻等各种处理。
名称以“模板”结尾的NSImage
按名称加载会自动标记为模板图像。否则,您可以使用 将图像标记为模板-setTemplate:
。您可以使用 . 检查图像是否为模板-isTemplate
。
作为模板的图像本质上不会改变图像的渲染方式。这是代码可以查看并决定更改其呈现图像的方式的一些元数据。没有太多关于应该如何执行渲染的文档。相反,您应该利用 提供的内置支持NSCell
,这是 AppKit 中唯一关注图像是否为模板的类。
这在较早的 AppKit 发行说明中有更详细的描述。
也就是说,如果您仍在寻找制作图像蒙版并对其进行剪辑,则可能需要下拉到 Core Graphics。 CGImage
直接支持蒙版图像的概念。 CGContext
支持使用CGContextClipToMask()
. 请参阅Quartz 2D 编程指南。