iOS UILabel使用负背景颜色作为文字颜色

我不知道这个技术有什么stream言,所以我在search引擎中找不到任何东西。

我想达到一个效果,这使得一个UILabel使用它的文字颜色的背景颜色(如图片中的黑色和白色就足够了我的目的)。 通过使用属性文本,我可以给每一个字母上色,但正如你在这张图片中看到的,我想要一个可以导致单个字母不同颜色的效果。 我最好的猜测是光栅化标签并为每个像素着色,但是我认为在性能方面有更好的方法。 任何提示,将不胜感激。

在这里输入图像说明

如果我这样做,我可能会创build一个类似于UILabel的API(只有我需要的部分)的一个自定义的UIView类加上一个属性来指示应该颠倒文本的哪一部分。

然后,我将实现drawRect:方法使用两个不同的剪辑区域两次绘制文本。 对于每一半,我会为文本和背景填充设置适当的颜色。

这可能可以通过UILabel的一个附加属性加上自定义的drawRect:方法来完成。