I have heavily borrowed (standard) code which applies a grayscale UIImage mask to a UIImage.
- (void) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
Make sure that both images (the image to be masked and the mask itself) have an alpha channel! This solved the issue for me on iOS7.
Then you should be able to use the old code you have used for iOS6.