首页 > 解决方案 > 如何从渐变层上方的“drawInRect”制作文本?

问题描述

我创建了一个名为的新类MySegment,它继承自UIControl.

首先,我用 初始化了一条渐变线CAGradientLayer

第二,[self.layer addSublayer:myLayer]

然后,["myString" drawInRect:rect withAttributes:attributes]在同一个位置。

我想把文字从drawInRect上面叠加myLayer,但不管我用什么addSublayerinsertlayer我的文字总是在下面mylayer,效果就显示在照片上。

如何使我的文本在渐变层之上?

在此处输入图像描述

标签: iosobjective-c

解决方案


CATextLayer正如@DonMag 所指出的那样,我确实会使用。在这种情况下,您将拥有CATextLayerCAGradientLayer

首先插入CAGradientLayer使用addSubLayer

[self.layer addSubLayer:gradientLayer];

然后CATextLayer使用insertSubLayer:above:

[self.layer insertSubLayer:textLayer above:gradientLayer];

PS:已回答有关将属性字符串放入 CATextLayer 的问题:在 CATextLayer 中 显示属性字符串


推荐阅读