Этот код будет работать нормально.
// transparent
CGContextSetRGBFillColor(cacheContext, 0.0, 0.0, 0.0, 0.0);
// image
CGImageRef cgImage = [[UIImage imageNamed:@"img.png"] CGImage];
CGContextDrawImage(cacheContext, self.bounds, cgImage);
CGContextFillRect(cacheContext, self.bounds);