Por qué el CGContext no dibuja nada cuando complete el color de ruta antes del color de ruta de trazo.

Codigo como este

UIGraphicsBeginImageContextWithOptions(CGSizeMake(100, 100), NO, 0); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextMoveToPoint(context, 5, 5); CGContextAddLineToPoint(context, 100, 100); CGContextSetLineWidth(context, 5); CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor); CGContextFillPath(context); CGContextSetStrokeColorWithColor(context, [UIColor grayColor].CGColor); CGContextStrokePath(context); UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

Cuando elimino el color de relleno, la image es correcta. Pero no puedo entender por qué agrego color de relleno, ¿la image no es nada?

El problema es cómo dibujas en el context.

Por favor intenta lo siguiente:

  CGRect rect = CGRectMake(0.0,0.0, 100, 100); UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0); CGContextRef context = UIGraphicsGetCurrentContext(); //Set background color CGContextSetRGBFillColor(context, 1.0,1.0,1.0,1.0); CGContextFillRect(context,rect); CGContextSetLineWidth(context, 2.0); CGContextSetStrokeColorWithColor(context, [UIColor grayColor].CGColor); CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor); CGContextMoveToPoint(context, 5, 5); CGContextAddLineToPoint(context, 100, 100); CGContextStrokePath(context); UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

Ahora

  _testImage.image = image; 

Obtendrás el resultado Por favor, hágamelo saber sus comentarios.