问题描述:

This code:

 let rect = CGRectMake( 0.0, 0.0, 16.0, 16.0 )

let context = UIGraphicsGetCurrentContext()

UIGraphicsBeginImageContext( rect.size )

CGContextSetFillColorWithColor( context, color.CGColor )

CGContextFillRect( context, rect )

let image = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()

Is throwing these errors:

MakeImage[60890] <Error>: CGContextSetFillColorWithColor: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

MakeImage[60890] <Error>: CGContextFillRects: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

CGRect size seems fine, which other posts suggest as the problem. So what else is incorrectly set, please? Thank you.

网友答案:

You need to get the current context after you begin the image context.

(Apparently, when you are calling this code, before you call UIGraphicsBeginImageContext(), there is no current context. Therefore UIGraphicsGetCurrentContext() returns nil.)

let rect = CGRectMake( 0.0, 0.0, 16.0, 16.0 )
UIGraphicsBeginImageContext( rect.size )

let context = UIGraphicsGetCurrentContext()

CGContextSetFillColorWithColor( context, color.CGColor )
CGContextFillRect( context, rect )

let image = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()
网友答案:

My bad, these two were simply the wrong way around:

UIGraphicsBeginImageContext( rect.size )
let context = UIGraphicsGetCurrentContext()
相关阅读:
Top