2016-07-21 44 views

Antwort

0

Dies ist die Erweiterung, die wir verwendet haben, um UIView in UIImageView zu erfassen. Die Lösung enthält keine Verwendung von UIReplicatView, wie Sie vorgeschlagen haben. Aber es hat gut für uns funktioniert:

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 
    } 
}