Ios 用特定的颜色和混合模式填充MKOverlay
我需要用特定的颜色和kCGBlendModeMultiply混合模式填充MKOverlay。我已经实现了mkoverlayrender子类,如下所示:Ios 用特定的颜色和混合模式填充MKOverlay,ios,objective-c,mapkit,quartz-core,mkoverlay,Ios,Objective C,Mapkit,Quartz Core,Mkoverlay,我需要用特定的颜色和kCGBlendModeMultiply混合模式填充MKOverlay。我已经实现了mkoverlayrender子类,如下所示: @interface MapDimOverlayRenderer : MKOverlayRenderer @property (nonatomic, strong) UIColor *overlayColor; @property (nonatomic, strong) CGFloat overlayAlpha; @end @impleme
@interface MapDimOverlayRenderer : MKOverlayRenderer
@property (nonatomic, strong) UIColor *overlayColor;
@property (nonatomic, strong) CGFloat overlayAlpha;
@end
@implementation MapDimOverlayRenderer
- (instancetype)initWithOverlay:(id<MKOverlay>)overlay {
self = [super initWithOverlay:overlay];
if (self) {
self.overlayAlpha = 0.9;
self.overlayColor = [UIColor hx_colorWithHexString:@"2C3239" alpha:self.overlayAlpha];
}
return self;
}
- (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context {
CGContextSetBlendMode(context, kCGBlendModeMultiply);
CGContextSetFillColorWithColor(context, self.overlayColor.CGColor);
CGContextFillRect(context, [self rectForMapRect:MKMapRectWorld]);
}
@end
@interface MapDimOverlayrender:mkOverlayrender
@属性(非原子,强)UIColor*叠加色;
@性质(非原子,强)CGA;
@结束
@实现MapDimOverlayRenderer
-(instancetype)initWithOverlay:(id)overlay{
self=[super initWithOverlay:overlay];
如果(自我){
self.overlayAlpha=0.9;
self.overlayColor=[UIColor hx_colorWithHexString:@“2C3239”alpha:self.overlayAlpha];
}
回归自我;
}
-(void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context{
CGContextSetBlendMode(上下文,kCGBlendModeMultiply);
CGContextSetFillColorWithColor(上下文,self.overlyColor.CGColor);
CGContextFillRect(上下文,[self-rectformprect:MKMapRectWorld]);
}
@结束
问题是CGContextSetBlendMode不影响结果。我试着设置不同的模式。结果始终与默认值相同(kCGBlendModeNormal)