2016-09-15 32 views
14

Tôi muốn dịch dòng này với Swift 3 cú pháp mã hiện tại nhưng dường như có một số vấn đề:Swift 3 và CGContextDrawImage

CGContextDrawImage(context, CGRect(x:0.0,y: 0.0,width: image!.size.width,height: image!.size.height), image!.cgImage) 

Theo CoreGraphics.apinotesCGContextDrawImage được chuyển đổi sang CGContext.draw:

Name: CGContextDrawImage 
    # replaced by draw(_ image: CGImage, in rect: CGRect, byTiling: Bool = false) 
    SwiftName: CGContext.__draw(self:in:image:) 
    SwiftPrivate: true 

Khi tôi cố gắng làm:

CGContext.draw(context as! CGImage, in: CGRect(x:0.0, y:0.0, width: image!.size.width, height: image!.size.height), byTiling: false) 

Có vẻ có một số cú pháp đơn giản mà làm phiền các trình biên dịch nhưng tôi không thể nhìn thấy (trong thực tế, tôi nhận được một lỗi mơ hồ điển hình):

enter image description here

bất cứ ai có thể giúp tôi với nhanh chóng mã 3 cú pháp mới này?

Trả lời

32

Bạn cần phải gọi nó như thể nó là một phương pháp thể hiện của CGContext:

context.draw(image!.cgImage!, in: CGRect(x: 0.0,y: 0.0,width: image!.size.width,height: image!.size.height)) 

Kiểm tra the latest reference of CGContext.

+0

Cảm ơn bạn, nó hoạt động hoàn hảo. 'tự' tài sản ban đầu của ví dụ đã làm tôi phân tâm khỏi mục tiêu :) –

+0

cảm ơn bạn thân –