我需要在所有其他注释之上绘制当前用户注释(蓝点)。现在它在我的其他注释下被绘制并隐藏起来。我想调整这个注解视图的Z-index(蓝点)并将它带到最高点,有谁知道如何?iOS MapKit用户位置注释的Z索引
更新: 所以我现在可以得到一个MKUserLocationView的句柄,但我该如何把它转发?
- (void) mapView:(MKMapView *)aMapView didAddAnnotationViews:(NSArray *)views {
for (MKAnnotationView *view in views) {
if ([[view annotation] isKindOfClass:[MKUserLocation class]]) {
// How do I bring this view to the front of all other annotations?
// [???? bringSubviewToFront:????];
}
}
}
这个解决方案对我来说似乎并不可靠。如果我拖动地图使其偏离屏幕并返回到地图,蓝色地点点就会在我的自定义注释下面结束,大概是因为地图视图会用原始布局重新绘制视图。 –
@DanJ然后使用' - (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated'中的相同逻辑并通过mapView.annotations循环并找到'[mapView viewForAnnotation:annotation]' – jmcopeland
好点,解决问题,尽管我发现将regionDidChangeAnimated中的代码放在比regionWillChangeAnimated更可靠的代码中。我会更新您的答案以包含额外的代码。 FTR,当使用大量注释时,会有轻微的性能问题,因为ChangeAnimated方法应尽可能轻量化。 –