gpt4 book ai didi

iphone - 相对于背景图像的负文本颜色

转载 作者:可可西里 更新时间:2023-11-01 03:21:22 31 4
gpt4 key购买 nike

我正在尝试对 UILabel 进行子类化(因为这可能是最简单的方法),因此它的 text 颜色对于它覆盖的背景图像部分是负的。我也有一个大概的想法,但无法将其转换为代码。

Figure 1

传递给子类的参数

  • 背景图片
  • UILabel 在背景图像中的位置(可能是 CGRect,因为它需要知道 UILabel 将覆盖的背景图像的 x、y、w、h)- 这也可能只是 UILabel 的矩形,因为 UILabel 将是包含背景图像的 UIImageView 的 subview 。

绘制标签时的逻辑

  1. 用文本创建一个蒙版 - 蒙版的内容将只是文本本身,而不是背景。
  2. 裁剪掉被标签覆盖的背景图像的特定部分(矩形)。
  3. 删除(或透明化)文本 mask 外的所有图像 -> 这样您只会在文本所在的位置留下图像,其余部分将消失。
  4. 反转图像的颜色(可能使用 this 方法)或以某种方式使用 kCGBlendModeDifference
  5. 在 UILabel 的 drawRectdrawTextInRect 方法之一中绘制所有内容。

用法

这个的用法可能是这样的

  1. 分配一个UIImage
  2. UIImageView 中显示它
  3. 创建 UILabel 子类,其文本颜色相对于 UILabel 将放置的图像部分反转
  4. 添加 UILabel 作为 UIImageView 的 subview

这可能有的问题

我无法估计滚动时的速度,但是这可以通过将文本直接绘制到 UIImage 中来解决,因为它将是静态的。如果将包含标签的 UIImageView 放入 UIScrollView 中,是否会在每次滚动时重绘?

非常感谢您!

最佳答案

查看我的问题的答案:drawRect drawing 'transparent' text?

有很多答案,包括您可以使用 Robin Senior 提供的一个很棒的开源项目。

尽情享受吧!

关于iphone - 相对于背景图像的负文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18948287/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com