Uiview 是否可以捕获UIReplicationView的UIImage屏幕截图?

Uiview 是否可以捕获UIReplicationView的UIImage屏幕截图?,uiview,uiimage,uikit,core-graphics,calayer,Uiview,Uiimage,Uikit,Core Graphics,Calayer,这里有一个ui视图的截图。捕获UIView的UIView的“屏幕抓图”的实际方法是SnapshotViewAfterScreenUpdate,它返回uiReplicationView(UIView的子类) 有没有办法从这个看似顽固的类创建UIImage?这是我们用来将UIView捕获到UIImageView中的扩展。该解决方案不包含您建议的任何UIReplicatView用法。但它一直在为我们工作: extension UIView { // Note: only return the

这里有一个
ui视图的截图
。捕获
UIView
UIView
的“屏幕抓图”的实际方法是
SnapshotViewAfterScreenUpdate
,它返回
uiReplicationView
(UIView的子类)


有没有办法从这个看似顽固的类创建
UIImage

这是我们用来将
UIView
捕获到
UIImageView
中的扩展。该解决方案不包含您建议的任何
UIReplicatView
用法。但它一直在为我们工作:

extension UIView {
    // Note: only return the image after viewDidAppear called
    func takeScreenShot() -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(bounds.size, isOpaque, UIScreen.main.scale)

        if let scrollView = self as? UIScrollView {
            let offset = scrollView.contentOffset
            UIGraphicsGetCurrentContext()?.translateBy(x: -offset.x, y: -offset.y);
        }

        drawHierarchy(in: bounds, afterScreenUpdates: true)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}