Swift 3.0:如何调用CGImageCreateWithImageInRect()?

Rob*_*eph 13 cgimage swift swift3 xcode8-beta3

我需要在Swift 3.0中实现这个Objective-C代码(我正在使用Xcode 8 Beta 3):

// Note: this code comes from an Obj-C category on UIImage
CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, cropRect);
UIImage *image = [UIImage imageWithCGImage:imageRef scale:self.scale orientation:self.imageOrientation];
Run Code Online (Sandbox Code Playgroud)

我在最新的文档中找不到任何内容CGImageCreateWithImageInRect().

OOP*_*Per 33

当我在Xcode8的Swift编辑器中编写这段代码时:

let imageRef = CGImageCreateWithImageInRect(self.CGImage!, cropRect)
Run Code Online (Sandbox Code Playgroud)

Swift给我看了一个错误:

error: 'CGImageCreateWithImageInRect' has been replaced by instance method 'CGImage.cropping(to:)'
Run Code Online (Sandbox Code Playgroud)

所以,我把线改为:

let imageRef = self.cgImage!.cropping(to: cropRect)
Run Code Online (Sandbox Code Playgroud)

你的代码的第二行似乎可以直接转换为Swift:

let image = UIImage(cgImage: imageRef!, scale: self.scale, orientation: self.imageOrientation)
Run Code Online (Sandbox Code Playgroud)

最新的文件CGImageCreateWithImageInRect,

CGImageCreateWithImageInRect

单击Swift链接,它显示:

func cropping(to rect: CGRect) -> CGImage?
Run Code Online (Sandbox Code Playgroud)