尝试在swift中以编程方式截取屏幕截图时,UIBlurEffect无效

Pal*_*rma 5 ios uigraphicscontext uiblureffect

我以编程方式模糊了我的视图并添加了带屏幕截图的共享扩展,但屏幕截图并未模糊我在图像中的视图.所有编程都在迅速

模糊的代码

let blurEffect = UIBlurEffect(style:.Dark)
let blurView = UIVisualEffectView(effect: blurEffect)
blurView.frame = imageView2.frame
self.view.addSubview(blurView)
Run Code Online (Sandbox Code Playgroud)

截图代码

UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
Run Code Online (Sandbox Code Playgroud)

谢谢

pte*_*fil 10

尝试以这种方式截取屏幕截图:

UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, 0)
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
Run Code Online (Sandbox Code Playgroud)


Rai*_*ast 6

我刚刚发现Apple实际上已经记录了如何拍摄UIVisualEffectView的快照:

捕获UIVisualEffectView的快照许多效果都需要在承载UIVisualEffectView的窗口中提供支持。尝试仅拍摄UIVisualEffectView的快照将导致不包含效果的快照。要拍摄包含UIVisualEffectView的视图层次结构的快照,必须拍摄包含UIVisualEffectView的整个UIWindow或UIScreen的快照。

谢谢!