【发布时间】:2011-01-27 18:35:00
【问题描述】:
我希望使用 Cocoa/Core Graphics 复制在为 UITabBarItem 设置图像时似乎在 iOS 上发生的过程。当标签栏项目被选中时,图像会被渐变覆盖。
例如,
变成……
我不确定我应该做些什么来达到这个效果。看起来图像正在掩盖渐变。任何指向正确方向(或代码!)的指针将不胜感激。
【问题讨论】:
标签: cocoa core-graphics nsimage uitabbaritem
我希望使用 Cocoa/Core Graphics 复制在为 UITabBarItem 设置图像时似乎在 iOS 上发生的过程。当标签栏项目被选中时,图像会被渐变覆盖。
例如,
变成……
我不确定我应该做些什么来达到这个效果。看起来图像正在掩盖渐变。任何指向正确方向(或代码!)的指针将不胜感激。
【问题讨论】:
标签: cocoa core-graphics nsimage uitabbaritem
您可以使用带有 Alpha 通道的单色 CGImage(与大多数 iPhone 工具/标签栏图标一样)作为遮罩。基本上,您会在单色图像中使用CGContextClipToMask。然后,您将绘制渐变,然后将其剪裁到蒙版图像。你可能还想看看UMEKit的代码,它在Mac OS X上实现了这个效果(没看具体是怎么做的,大概有几种方法)。
【讨论】:
[topWave drawAtPoint:NSMakePoint(0, 0) fromRect:NSMakeRect(0, 0, self.frame.size.width, self.frame.size.height) operation:NSCompositeDestinationAtop fraction:1.0];