我创建了一个覆盖层,我想覆盖整个世界,除了应用程序关注的特定区域。我将 MKPolygon 子类化如下:
class ReplacingPolygion:MKPolygon{
override func canreplaceMapContent()->Bool{
return true
}
override var boundingMapRect: MKMapRect { MKMapRect.world }
}
据我所知,这意味着我的叠加层将替换现有的地图内容并绘制在整个世界上。我已经用覆盖整个世界地图的坐标初始化了上面的类,除了内部多边形,它从更大的叠加层中切出我需要的区域。因此,这为整个世界创建了一个覆盖,除了我想要的区域。
ReplacingPolygion(coordinates: worldPolygon!,count: worldPolygon!.count,interiorPolygons: [userPolygon])
问题在于,因为我将 canreplaceMapContent()
设置为 true
,所以它不会在任何地方绘制地图,包括透明的内部多边形。
有没有办法强制 MKMapView
渲染上面 interiorPolygon
描述的区域中的图块?