ios - 如何从渐变层上方的“drawInRect”制作文本?
问题描述
我创建了一个名为的新类MySegment
,它继承自UIControl
.
首先,我用 初始化了一条渐变线CAGradientLayer
。
第二,[self.layer addSublayer:myLayer]
然后,["myString" drawInRect:rect withAttributes:attributes]
在同一个位置。
我想把文字从drawInRect
上面叠加myLayer
,但不管我用什么addSublayer
,insertlayer
我的文字总是在下面mylayer
,效果就显示在照片上。
如何使我的文本在渐变层之上?
解决方案
CATextLayer
正如@DonMag 所指出的那样,我确实会使用。在这种情况下,您将拥有CATextLayer
和CAGradientLayer
。
首先插入CAGradientLayer
使用addSubLayer
[self.layer addSubLayer:gradientLayer];
然后CATextLayer
使用insertSubLayer:above:
[self.layer insertSubLayer:textLayer above:gradientLayer];
PS:已回答有关将属性字符串放入 CATextLayer 的问题:在 CATextLayer 中 显示属性字符串
推荐阅读
- powershell - IIS 站点创建失败 - 对象标识符不代表有效对象。(来自 HRESULT 的异常:0x800710D8)
- java - 在java中解析和包装某些标签的正则表达式
- sql - 使用选定的列创建另一个字符串插值组合 Postgresql 中的所有字段?
- java - 如何在 Web3j 中的 infura 上使用凭证钱包路径和元掩码帐户
- angular - zone.js:199 未捕获的类型错误:无法在 user.service.ts:32 处读取 null 的属性“密码”
- php - 你如何使用 PHP 抓取嵌套表?
- joomla - Joomla - 无法在已停用插件的仪表板插件页面中包含 CSS
- android - 同一设备上的两个用户 | 设置用户 ID 行为
- c# - 如何淘汰.Net框架中的现有方法?
- hadoop - JAVA_HOME 未设置且无法找到。安装 HADOOP 时出错