ios - 在 CAShapelayer ios swift 中添加/绘制文本
问题描述
我正在尝试在白色圆圈的中心绘制文本,并且文本颜色应该是透明的,因此它代表背景视图的颜色。因此,随着背景视图的颜色(即渐变色)的变化,文本的颜色也会发生变化。
下面是用于绘制白色圆圈的代码
let circleLayer = CAShapeLayer();
circleLayer.path = UIBezierPath(ovalIn: CGRect(x: self.view.frame.width/2 - 87, y: self.view.frame.height/2 - 87, width: 174, height: 174)).cgPath;
circleLayer.strokeColor = UIColor.clear.cgColor;
circleLayer.fillColor = UIColor.white.cgColor;
self.view.layer.addSublayer(circleLayer)
现在我需要在这个透明的白色圆圈中添加文本,代表背景视图的颜色
或者总的来说,我们可以简单地说,我需要以文本形式剪掉白色圆圈,以便从剪下的部分可以看到背景视图颜色
任何帮助都会很棒..!
谢谢你。
解决方案
Create a UILabel and add it as a subview to CALayer
let label = UILabel()
label.frame = CGRect(x: circleLayer.frame.origin.x + (circleWidth/2), y: circleLayer.frame.origin.y, width: circleLayer.bounds.width, height: circleLayer.bounds.height)
label.text = "Hello"
label.textColor = *Your background color*
label.isHidden = false
circleLayer.addSublayer(label.layer)
推荐阅读
- django - 特定于用户类型的额外数据
- javascript - 检查日期/时间是否在另外两个日期/时间 Javascript 之间
- angular - 当用户的 id 与文档 uid 匹配时如何从 Firebase 返回一个数组
- appium - 无法访问 Appium、Node.Js 中的 getText() 方法
- c# - 从以字母开头的数据表中删除重复项
- javascript - Javascript将文本框的内容动态移动到一个框中
- android - 如何在 Kotlin 上检索当前位置(纬度和经度)?
- javascript - 如何在 v-for 循环中按键值调用过滤器函数以过滤日期时间中的日期
- react-native - 导航标题未隐藏在本机反应中
- excel - 我不断收到错误消息“下标超出范围”,