For drawing of one view, just use this:
    // Begin context
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, UIScreen.mainScreen().scale)
    // Draw view in that context
    drawViewHierarchyInRect(view.bounds, afterScreenUpdates: true)
    // And finally, get image
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
If you want to use it multiple times, probably extension would do the job:
//Swift4
extension UIView {
    func takeScreenshot() -> UIImage {
        // Begin context
        UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, UIScreen.main.scale)
        // Draw view in that context
        drawHierarchy(in: self.bounds, afterScreenUpdates: true)
        // And finally, get image
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        if (image != nil)
        {
            return image!
        }
        return UIImage()
    }
}
//Old Swift
extension UIView {
    func takeScreenshot() -> UIImage {
        // Begin context
        UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, UIScreen.mainScreen().scale)
        // Draw view in that context
        drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true)
        // And finally, get image
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}
To explain what those parameters do:
UIGraphicsBeginImageContextWithOptions() creates a temporary rendering
  context into which the original is drawn. The first argument, size, is
  the target size of the scaled image. The second argument, isOpaque is
  used to determine whether an alpha channel is rendered. Setting this
  to false for images without transparency (i.e. an alpha channel) may
  result in an image with a pink hue. The third argument scale is the
  display scale factor. When set to 0.0, the scale factor of the main
  screen is used, which for Retina displays is 2.0 or higher (3.0 on the
  iPhone 6 Plus).
More about it here http://nshipster.com/image-resizing/
As for the draw call, Apple Docs explains it to detail here and here