2016-07-25 12 views
11

मैं (मैं Xcode 8 बीटा 3 उपयोग कर रहा हूँ) स्विफ्ट 3.0 में यह ऑब्जेक्टिव-सी कोड लागू करने की आवश्यकता:स्विफ्ट 3.0: CGImageCreateWithImageInRect() को कैसे कॉल करें?

// 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]; 

मैं CGImageCreateWithImageInRect() के लिए नवीनतम दस्तावेज में कुछ भी नहीं मिल सकता है।

उत्तर

21

जब मैं Xcode8 की स्विफ्ट संपादक में इस कोड को लिखें:

let imageRef = CGImageCreateWithImageInRect(self.CGImage!, cropRect) 

स्विफ्ट के रूप में मुझे एक त्रुटि से पता चला है:

:

error: 'CGImageCreateWithImageInRect' has been replaced by instance method 'CGImage.cropping(to:)' 

तो, मैं करने के लिए लाइन बदल

let imageRef = self.cgImage!.cropping(to: cropRect) 

और आपके कोड की दूसरी पंक्ति di rectly स्विफ्ट के लिए परिवर्तनीय:,

let image = UIImage(cgImage: imageRef!, scale: self.scale, orientation: self.imageOrientation) 

और CGImageCreateWithImageInRect के नवीनतम दस्तावेजों

CGImageCreateWithImageInRect

स्विफ्ट लिंक पर क्लिक करने से, यह पता चलता है:

func cropping(to rect: CGRect) -> CGImage? 
संबंधित मुद्दे