如何在不改变文本透明度的情况下为 UILabel 设置背景图像并调整其 alpha?
Posted
技术标签:
【中文标题】如何在不改变文本透明度的情况下为 UILabel 设置背景图像并调整其 alpha?【英文标题】:How can I set a background image for a UILabel and adjust its alpha without changing the transparency of the text? 【发布时间】:2010-11-08 16:35:38 【问题描述】:如何创建带有背景图像的UILabel
,并在不改变文本透明度的情况下调整背景图像的透明度(Alpha 通道)?
如果没有简单的方法在 UILabel
对象中单独完成此操作,那么创建一个由 UIImageView
和 UILabel
组成的自定义 UIView
对象怎么样,这将允许我调整 alpha图像的通道独立于UILabel
的 alpha 通道?这是否比它需要的更复杂?
非常感谢您的智慧!
【问题讨论】:
您是否使用 [UIColor colorWithPatternImage:[UIImage imageNamed:@"myBackground"]] 作为标签的背景?您需要在运行时设置透明度,还是可以使用 PNG alpha 通道透明度? 嗨 Gregln,是的,我正在使用 colorWithPatternImage,我需要在运行时实现透明度。 我不知道有一种简单的方法可以将透明度应用于与 colorWithPatternImage 一起使用的图像。我想您可以使用 UIImage 的 drawInRect:blendMode:alpha: 将图像重绘到图形上下文中,然后将结果抓取到与 colorWithPatternImage 一起使用的新 UIImage 中,但我从未尝试过。 【参考方案1】:针对 UIImage、alpha 和 CGImageRef 的 Google 代码搜索并没有找到完全符合您需要的任何内容,而是提供了大量相关代码(例如,参见 this)。我会遵循相同的模式,从您的图像中获取 CGImageRef,使用具有透明度的合成模式绘制它,然后使用 [UIImage imageWithCGImage:]
从中获取 UIImage。
【讨论】:
以上是关于如何在不改变文本透明度的情况下为 UILabel 设置背景图像并调整其 alpha?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不影响 SYSTEM/IE 代理的情况下为 Webbrowser Control 设置代理