如何在不改变文本透明度的情况下为 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 对象中单独完成此操作,那么创建一个由 UIImageViewUILabel 组成的自定义 UIView 对象怎么样,这将允许我调整 alpha图像的通道独立于UILabel 的 alpha 通道?这是否比它需要的更复杂?

非常感谢您的智慧!

【问题讨论】:

您是否使用 [UIColor colorWithPatternImage:[UIImage imageNamed:@"myBackground"]] 作为标签的背景?您需要在运行时设置透明度,还是可以使用 PNG alpha 通道透明度? 嗨 Gregln,是的,我正在使用 colorWithPatternImage,我需要在运行时实现透明度。 我不知道有一种简单的方法可以将透明度应用于与 colorWithPatternImage 一起使用的图像。我想您可以使用 UIImage 的 drawInRect:blendMode:alpha: 将图像重绘到图形上下文中,然后将结果抓取到与 colorWithPatternImage 一起使用的新 UIImage 中,但我从未尝试过。 【参考方案1】:

针对 UIImage、alpha 和 CGI​​mageRef 的 Google 代码搜索并没有找到完全符合您需要的任何内容,而是提供了大量相关代码(例如,参见 this)。我会遵循相同的模式,从您的图像中获取 CGImageRef,使用具有透明度的合成模式绘制它,然后使用 [UIImage imageWithCGImage:] 从中获取 UIImage。

【讨论】:

以上是关于如何在不改变文本透明度的情况下为 UILabel 设置背景图像并调整其 alpha?的主要内容,如果未能解决你的问题,请参考以下文章

在不改变背景样式的情况下更改 jumbotron 中的文本

如何在不改变背景内容的情况下改变背景的不透明度?

如何在不影响文本的情况下在背景图像上使用不透明度?

如何在不影响 SYSTEM/IE 代理的情况下为 Webbrowser Control 设置代理

如何在不使用 @Composable 注释的情况下为撰写函数创建扩展?

如何在不重新启动 apache 的情况下为站点重新加载 apache 配置?