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

Posted

技术标签:

【中文标题】使 MKMapView 的背景颜色变暗而不使 MKOverlay 变暗【英文标题】:Darkening the MKMapView's background color without darkening the MKOverlay 【发布时间】:2013-04-26 02:40:03 【问题描述】:

如何使MKMapView 的背景颜色变暗,而同时使MKMapView 中的MKOverlay 变暗——类似于Nike+ 应用程序。

【问题讨论】:

【参考方案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];

【讨论】:

为什么不接受答案?在大量使用自定义叠加渲染器子类后,这只是救了我。【参考方案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)

【讨论】:

以上是关于使 MKMapView 的背景颜色变暗而不使 MKOverlay 变暗的主要内容,如果未能解决你的问题,请参考以下文章

更改未选择的标签栏项目图像的颜色而不使其成为原始图像

如何使我的网站背景透明而不使内容(图像和文本)也透明?

如何将图像放在后面而不使其成为背景图像?

jQuery UI 对话框 - 仅使用背景不透明度而不使字体变灰?

如何使用 CSS 使元素的背景颜色变暗一点

安卓如何让屏幕变暗而不是关闭屏幕?