在 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)

现在我需要向这个透明的白色圆圈添加文本,因为它代表背景视图的颜色

或者总的来说,我们可以这么说,我需要以文本的形式切出白色圆圈,以便可以从切割的部分看到背景视图颜色

任何帮助都会很棒..!

谢谢。

解决方法

创建一个 UILabel 并将其作为子视图添加到 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...