【发布时间】:2018-10-18 11:58:44
【问题描述】:
我正在尝试在 CALayer 的覆盖 draw 方法中绘制一个字符串(我正在为 iOS 编程)。
override func draw(in ctx: CGContext) {
let font = UIFont.systemFont(ofSize: 30)
let string = NSAttributedString(string: "23", attributes: [NSAttributedStringKey.font: font])
string.draw(at: CGPoint(x: 200, y: 200))
}
然而,这并没有绘制任何东西(至少没有任何东西是可见的)。更改填充和描边颜色没有任何区别。
如果我画一条线,它会显示出来,所以这个函数被调用了。我知道有一个CATextLayer,但我需要直接绘制字符串。在 Swift 4 时代,你应该如何在CGContext 中画一个字符串?再多的网络搜索都没有得到答案。
【问题讨论】:
-
我现在无法测试它,但我知道在
draw(ctx:)上不调用super可能会是problematic -
CALayer 文档说:“此方法的默认实现本身不进行任何绘图。”只是为了确保我使用超级调用尝试了代码:没有区别。
-
对不起,我不知道为什么我将您的问题与 UIView drawRect 相关联,我的错。
标签: ios swift calayer cgcontext