Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Objective c 当两个CGRect在地图上重叠时,如何避免alpha分量增加?_Objective C_Heatmap_Cgrect - Fatal编程技术网

Objective c 当两个CGRect在地图上重叠时,如何避免alpha分量增加?

Objective c 当两个CGRect在地图上重叠时,如何避免alpha分量增加?,objective-c,heatmap,cgrect,Objective C,Heatmap,Cgrect,我正在为iOS开发objective-c应用程序。我有一些与gps坐标相关的数据,这些数据是从CoreData获得的,我想在地图上表示这些数据,用一些颜色绘制一些CGRect,以制作一种热图。我可以这样做,但我的问题是,如果有两个或多个重叠的CGRect,则CGRect的alpha分量相加,因此如果有很多重叠的CGRect,我会失去透明度。我的问题是,是否存在避免这种情况的方法,并在不失去透明度的情况下绘制重叠的CGRECT。可能是对以前的CGRect进行裁剪并添加新的CGRect 有什么想法吗

我正在为iOS开发objective-c应用程序。我有一些与gps坐标相关的数据,这些数据是从CoreData获得的,我想在地图上表示这些数据,用一些颜色绘制一些CGRect,以制作一种热图。我可以这样做,但我的问题是,如果有两个或多个重叠的CGRect,则CGRect的alpha分量相加,因此如果有很多重叠的CGRect,我会失去透明度。我的问题是,是否存在避免这种情况的方法,并在不失去透明度的情况下绘制重叠的CGRECT。可能是对以前的CGRect进行裁剪并添加新的CGRect

有什么想法吗?
谢谢您的建议。

您可以将无透明度的矩形绘制到
CGLayer
UIImage
上,然后在地图顶部以所需的透明度绘制该层/图像


或者,您可以尝试不同的混合模式,可能是
KCGBlendModeSourceTop

谢谢您的回复,我用这个CGContextSetBlendMode(ctx,KCGBlendModeDestinationTop)解决了这个问题;