使 MKMapView 的背景颜色变暗而不使 MKOverlay 变暗

Darkening the MKMapView's background color without darkening the MKOverlay

提问人:ximmyxiao 提问时间:4/26/2013 最后编辑:Sam Spencerximmyxiao 更新时间:12/3/2015 访问量:2003

问:

如何使 的背景颜色变暗,同时不使背景颜色变暗 - 类似于 Nike+ 应用程序中的地图视图。MKMapViewMKOverlayMKMapView

iOS MKMapView UIEbackgroundColor

评论


答:

7赞 ximmyxiao 10/9/2013 #1

好的,我在这里得到了解决方案,在向地图添加其他叠加层之前,您可以添加一个总叠加层作为地图的背景,因此地图的背景颜色发生了变化,但叠加层仍然像以前一样,这里是代码

MKMapRect worldRect = MKMapRectWorld;
    MKMapPoint point1 = MKMapRectWorld.origin;
    MKMapPoint point2 = MKMapPointMake(point1.x+worldRect.size.width,point1.y);
    MKMapPoint point3 = MKMapPointMake(point2.x, point2.y+worldRect.size.height);
    MKMapPoint point4 = MKMapPointMake(point1.x, point3.y);

    MKMapPoint points[4] = {point1,point2,point3,point4};
    self.polygon = [MKPolygon polygonWithPoints:points count:4];
    [self.runMapView addOverlay:self.polygon];

评论

0赞 Travis Griggs 5/1/2015
为什么答案没有被接受?在对自定义覆盖渲染器子类进行大量研究之后,这刚刚拯救了我。
0赞 Asteroid 7/20/2022
这如何使地图变暗?
0赞 ximmyxiao 7/21/2022
@Asteroid,太长了,记不住为什么了,也许覆盖层会自己变暗
1赞 Sping David 12/3/2015 #2

斯威夫特 2.0

let worldRect = MKMapRectWorld
let point1 = MKMapRectWorld.origin
let point2 = MKMapPointMake(point1.x + worldRect.size.width, point1.y)
let point3 = MKMapPointMake(point2.x, point2.y + worldRect.size.height)
let point4 = MKMapPointMake(point1.x, point3.y)
var points = [point1, point2, point3, point4]
let polygon = MKPolygon(points: &points, count: points.count)
mapView.addOverlay(polygon)

评论

0赞 Asteroid 7/20/2022
颜色越深呢?