我正在尝试为地图设置“战争迷雾”类型效果。
我正在使用带有一个interiorPolygons数组的MKPolygon类(灰色区域)来显示剪切部分。
var points = [MKMapPointMake(centerPoint.x - (accuracy * squareOffset), centerPoint.y - (accuracy * squareOffset)),
MKMapPointMake(centerPoint.x + (accuracy * squareOffset), centerPoint.y - (accuracy * squareOffset)),
MKMapPointMake(centerPoint.x + (accuracy * squareOffset), centerPoint.y + (accuracy * squareOffset)),
MKMapPointMake(centerPoint.x - (accuracy * squareOffset), centerPoint.y + (accuracy * squareOffset))]
var polygon = MKPolygon(points: &points, count: 4, interiorPolygons: cutouts)
现在,我的搜索结果如下:
https://www.dropbox.com/s/hk94jmybc4iqti0/Screen%20Shot%202014-08-06%20at%209.31.29%20PM.png
问题是interiorPolygons中重叠的MKPolgyons默认回到原始的灰色。
应该是正确的行为(我在油漆中做得不完善):
https://www.dropbox.com/s/izc8umm28t4ggf9/Screen%20Shot%202014-08-06%20at%209.07.27%20PM.png
我的第一个问题:如何将interiorPolygons的重叠颜色设置为透明?
第二个问题:对于interiorPolygons,有没有办法使用MKCircle而不是MKPolygons?我认为效果会像圆圈而不是矩形一样好看。
修改 我在文档中挖了更多,发现了这个:
“创建多边形时,可以通过指定一个或多个内部多边形来遮罩多边形的某些部分。对于您指定的多边形,此类使用奇偶填充规则来确定最终占用区域。如果重叠多边形,此规则可能会导致特定区域被掩盖掉(从而从总占用区域中移除)。有关如何将填充规则应用于路径的更多信息,请参阅“Quartz 2D编程指南”中的路径。“
这使我得到了说:
的文档CGContextFillPath 使用非零绕组编号规则填充当前路径。
我需要使用非零绕组数规则而不是奇数,但我不是100%确定如何做到这一点。
谢谢! 乔恩