Crea un nuevo UIImage agregando sombra al UIImage existente

He echado un vistazo a esta pregunta:UIImage Shadow Trouble

Pero la respuesta aceptada no funcionó para mí.

Lo que estoy tratando de hacer es tomar un UIImage y agregarle una sombra, luego devolver un nuevo UIImage, shadow y todo.

Esto es lo que estoy intentando:

- (UIImage*)imageWithShadow {

    CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef shadowContext = CGBitmapContextCreate(NULL, self.size.width, self.size.height + 1, CGImageGetBitsPerComponent(self.CGImage), 0, 
                                                 colourSpace, kCGImageAlphaPremultipliedLast);
    CGColorSpaceRelease(colourSpace);

    CGContextSetShadow(shadowContext, CGSizeMake(0, -1), 1);
    CGContextDrawImage(shadowContext, CGRectMake(0, 0, self.size.width, self.size.height), self.CGImage);

    CGImageRef shadowedCGImage = CGBitmapContextCreateImage(shadowContext);
    CGContextRelease(shadowContext);

    UIImage * shadowedImage = [UIImage imageWithCGImage:shadowedCGImage];
    CGImageRelease(shadowedCGImage);

    return shadowedImage;
}

El resultado es que obtengo exactamente la misma imagen que antes, a través de este método.

Estoy haciendo esto de la manera correcta, ¿o hay algo obvio que me estoy perdiendo?

Respuestas a la pregunta(7)

Su respuesta a la pregunta