Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用特定的颜色和混合模式填充MKOverlay_Ios_Objective C_Mapkit_Quartz Core_Mkoverlay - Fatal编程技术网

Ios 用特定的颜色和混合模式填充MKOverlay

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

我需要用特定的颜色和kCGBlendModeMultiply混合模式填充MKOverlay。我已经实现了mkoverlayrender子类,如下所示:

@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)