I want to draw map overlay with blend mode. But this code just draw white overlay without any blend mode. What I’m doing wrong?
- (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context
{
UIGraphicsPushContext(context);
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetBlendMode(context, kCGBlendModeSaturation);
CGContextFillRect(context, [self rectForMapRect:mapRect]);
UIGraphicsPopContext();
}
Here is result that I want. I make it in Photoshop with three layers:
- original google map.
- black layer with saturation blend mode.
- white layer with exclusion blend mode.

I guess you cannot acces the real mapview context directly. So probably you have to take a “screenshot” of the map and draw it again in your context. After that you can apply your effects of course.