ios - 如何在CGContext中绘制String?

标签 ios swift calayer cgcontext

我正在尝试在 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 中绘制字符串?网上搜索再多也找不到答案。

最佳答案

我假设您知道所有其他设置。这里的关键是你没有将 CGContext 作为当前的。只需添加两行代码即可解决问题。希望你能得到答案。

   override func draw(in ctx: CGContext) {
   UIGraphicsPushContext(ctx)
    let font = UIFont.systemFont(ofSize: 30)
    let string = NSAttributedString(string: "23", attributes: [NSAttributedString.Key.font: font])
    string.draw(at: CGPoint(x: 200, y: 200))
   UIGraphicsPopContext()
}

关于ios - 如何在CGContext中绘制String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52873476/

相关文章:

ios - Swift 中的多个泛型类继承

iOS8 图像不显示在圆角

swift - 如何在自定义 CALayer 子类的重写绘图函数中在 macOS 上绘制字符串?

ios - 验证来自 SQL 注入(inject) objective-c 的输入

php - 如何在 swift 中 http 发布特殊字符

swift - 单击按钮时调用 NextVC 所有方法,无需推送 View Controller

ios - 使用 UILabel 文本掩码显示 UIView

objective-c - 核心动画隐式动画不会为新添加的子层触发

ios - 在 IOS 上存储照片的最佳后端服务器

ios - 在代码中将自定义布局类连接到 Collection View