【问题标题】:add/draw text in CAShapelayer ios swift在 CAShapelayer ios swift 中添加/绘制文本
【发布时间】:2021-05-11 18:09:48
【问题描述】:

我正在尝试在白色圆圈的中心绘制文本,并且文本颜色应该是透明的,因此它代表背景视图的颜色。因此,随着背景视图的颜色(即渐变色)的变化,文本的颜色也会发生变化。

下面是绘制白色圆圈的代码

        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)

现在我需要在这个透明的白色圆圈中添加文字,代表背景视图的颜色

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

任何帮助都会很棒..!

谢谢。

【问题讨论】:

标签: ios swift calayer uibezierpath cagradientlayer


【解决方案1】:

创建一个 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)

【讨论】:

  • 文本应该是透明的或类似的,所以它直接显示背景视图的颜色@Babar
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2020-01-30
  • 1970-01-01
  • 2015-05-08
相关资源
最近更新 更多