Swift 3 的部分屏幕截图

Partial Screenshot with Swift 3

我想在我的项目中制作部分屏幕截图。 但是,我尝试了输出屏幕截图并不像我想要的那样好。
这是我的代码。

let size = CGSize(width: 398, height: 300)

    UIGraphicsBeginImageContextWithOptions(size, false, 0);

    view.layer.render(in: UIGraphicsGetCurrentContext()!)

    var sourceImage = UIGraphicsGetImageFromCurrentImageContext()

    sourceImage?.draw(at: CGPoint(x: 0, y: 0))

    var cropimage = UIGraphicsGetImageFromCurrentImageContext()


    UIGraphicsEndImageContext()
    UIImageWriteToSavedPhotosAlbum(cropimage!,nil,nil,nil)


我只想保存白色视图。如果我设置宽度和高度,输出的图像很小而且不完整。
有人帮帮我吗?

扩展 UIView 并捕获该白色视图的图像

// Untested
import UIKit

extension UIView {

  func capture() -> UIImage {

    UIGraphicsBeginImageContextWithOptions(self.frame.size, self.opaque, UIScreen.mainScreen().scale)
    self.layer.renderInContext(UIGraphicsGetCurrentContext()!)
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return image
  }

}

用法:

let whiteImage = myWhiteView.capture()