NSImage Overlay/Mask Gradient 像 iOS
Posted
技术标签:
【中文标题】NSImage Overlay/Mask Gradient 像 iOS【英文标题】:NSImage Overlay/Mask Gradient like iOS 【发布时间】:2011-01-27 18:35:00 【问题描述】:我希望使用 Cocoa/Core Graphics 复制在为 UITabBarItem
设置图像时似乎在 ios 上发生的过程。当标签栏项目被选中时,图像会被渐变覆盖。
例如,
变成……
我不确定我应该做些什么来达到这个效果。看起来图像正在掩盖渐变。任何指向正确方向(或代码!)的指针将不胜感激。
【问题讨论】:
【参考方案1】:您可以使用带有 Alpha 通道的单色 CGImage
(与大多数 iPhone 工具/标签栏图标一样)作为遮罩。基本上,您会在单色图像中使用CGContextClipToMask
。然后,您将绘制渐变,然后将其剪裁到蒙版图像。你可能还想看看UMEKit的代码,它在Mac OS X上实现了这个效果(没看具体是怎么做的,大概有几种方法)。
【讨论】:
你知道我实际上在另一个项目中使用了 UMEKit,我什至没有想到去看。感谢您的建议! 最终做了 UMEKit 似乎做的事情。首先,我在 drawRect 方法中绘制渐变,然后像这样在上面合成一个 NSImage -[topWave drawAtPoint:NSMakePoint(0, 0) fromRect:NSMakeRect(0, 0, self.frame.size.width, self.frame.size.height) operation:NSCompositeDestinationAtop fraction:1.0];
以上是关于NSImage Overlay/Mask Gradient 像 iOS的主要内容,如果未能解决你的问题,请参考以下文章
NSImage 标准图稿和图标 NSImageNameStatusAvailable
我无法使用 imageNamed 但 initWithContentsOfFile 创建 NSImage