【问题标题】:How can I set a background image for a UILabel and adjust its alpha without changing the transparency of the text?如何在不改变文本透明度的情况下为 UILabel 设置背景图像并调整其 alpha?
【发布时间】: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 中,但我从未尝试过。

标签: iphone uikit ios


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-05-16
    • 2017-11-08
    • 2016-12-23
    • 2011-06-27
    • 1970-01-01
    相关资源
    最近更新 更多