【问题标题】:Screenshot View with CAEmitterLayer使用 CAEmitterLayer 的屏幕截图视图
【发布时间】:2015-01-18 03:44:14
【问题描述】:

是否可以截取包含 CAEmitterLayer 的视图?

每当我尝试时,视图都创建得很好,但是所有粒子都丢失了,这是我的代码:

UIGraphicsBeginImageContext(drawingView.frame.size)
var context:CGContextRef = UIGraphicsGetCurrentContext()
drawingView.layer.renderInContext(context)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image

我已经确认 CAEmitterLayer 在 drawingView.layer 上

【问题讨论】:

标签: swift caemitterlayer


【解决方案1】:

这适用于 iOS,但现在我需要类似的方法用于 OSX:

func offscreenScreenshot(drawingView:UIView) -> Image
{
    UIGraphicsBeginImageContextWithOptions(drawingView.frame.size, true, 1.0)
    let res = drawingView.drawViewHierarchyInRect(drawingView.bounds, afterScreenUpdates: false)
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return image
}

【讨论】:

  • 嗨,克里斯,我尝试了代码,但我面临图像质量和缺少快照数据的问题,请建议解决方案..?
  • 是规模问题吗?如果是这样,请将 scale 参数设置为 1.0 到 0。
  • 并且由于 afterScreenUpdates: false.if 我设置 afterScreenUpdates: true UIView 是闪烁然后更新
  • 我认为您可能需要发布一些代码,也许是一个新的 SO 问题
  • 你可以查看这个链接stackoverflow.com/questions/42918044/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多