【发布时间】:2011-06-21 09:59:50
【问题描述】:
我有一个 MapView,我在上面放置了一些叠加层 (MKPolygon)。
我必须维护 MKPolygon 组。
为此,我有一个 PolyGonGroupClass 来保存每个多边形以及应该用于显示所有这些多边形的颜色和 alpha。
因此,每次我找到一个多边形时,我都会将其添加为地图叠加层并记住到正确的多边形组中。
我所有的多边形组都保存在一个实例变量中。
[self.mapView addOverlay:poly];
[thecorrectpolygroup addObject:poly];
...
[self.mypolygroups addObject:thecorrectpolygroup];
@interface PolyGonGroupClass : NSObject {
UIColor* __color;
float __alpha;
NSMutableArray* __polygons;
}
嗯……
此时,我如何告诉 MapView 每个多边形的颜色和 alpha 并在其中一种颜色发生变化时即时更新它们?
我找到了一个- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay 方法,但我不知道如何使用它来检索我放入记忆值中的值。
我想我应该使用 overlay 参数,但是如何检索与该覆盖对应的正确多边形组?
【问题讨论】:
-
你可以调用 [mapView setNeedsDisplay];我很确定这也会迫使图层重绘。
-
@Lee Armstrong :问题不在于如何强制重绘(您的提示是正确的),而在于我如何个性化每个叠加层。
-
不确定我是否理解。您需要在 viewForOverlay 中使用多边形,mapkit 将为您绘制。你在 viewForOverlay 中得到了什么代码?
标签: iphone mapkit overlay customization