Iphone 注释没有按照我提供的顺序放在地图视图上
我开发了一个应用程序,它使用地图视图,在同一个位置有多个注释,但它没有放弃我为注释提供的顺序。我从数组中添加了注释,但它没有显示相同的顺序。我需要第一个对象[注释]位于该位置的顶部。当用户点击注释时,第一个对象应显示为标注。有什么建议可以这样做吗 谢谢 我已经尝试过这种方法,但没有成功Iphone 注释没有按照我提供的顺序放在地图视图上,iphone,annotations,mkmapview,Iphone,Annotations,Mkmapview,我开发了一个应用程序,它使用地图视图,在同一个位置有多个注释,但它没有放弃我为注释提供的顺序。我从数组中添加了注释,但它没有显示相同的顺序。我需要第一个对象[注释]位于该位置的顶部。当用户点击注释时,第一个对象应显示为标注。有什么建议可以这样做吗 谢谢 我已经尝试过这种方法,但没有成功 - (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views { for (MKAnnotationView *vie
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
for (MKAnnotationView *view in views) {
if ([[view annotation] isKindOfClass:[Annotation class]]) {
Annotation *customAnnotation = (Annotation*) [view annotation];
if ([customAnnotation markerID]==0)
[[view superview] bringSubviewToFront:view];
else {
[[view superview] sendSubviewToBack:view];
}
}
}
}
注释可以按任意顺序添加,也可以像在表视图中添加单元格一样从视图中添加或删除。因此,z层可能会以您可能不希望的方式变化 下面是一些可能对您有所帮助的示例代码。我有一个地图,显示搜索结果的PIN。它们分为正常结果和收藏夹。我希望收藏夹始终位于顶部或其他针脚上。我还有一个“矩形”来突出显示选定的地图图钉,我总是希望它位于所有注释的顶部。我使用此代码将不同类型的注释按正确的z层顺序排列:
- (void) mapView:(MKMapView *)aMapView didAddAnnotationViews:(NSArray *)views {
MKAnnotationView *theReticleView = nil;
for (MKAnnotationView *view in views) {
if ([[view annotation] isKindOfClass:[SearchResult class]]) {
SearchResult *result = (SearchResult*) [view annotation];
if ([result.isFavorite boolValue]) {
[[view superview] bringSubviewToFront:view];
} else {
[[view superview] sendSubviewToBack:view];
}
}
else if ([[view annotation] isKindOfClass:[MapReticle class]]) {
theReticleView = view;
}
}
if (theReticleView != nil)
[[theReticleView superview] bringSubviewToFront:theReticleView];
}
可能是Hi Draco的复制品,谢谢你的快速回答,我已经尝试过这种方法,但没有运气。当我点击注释获取标注时,它显示的不是注释的第一个索引。它应该向我显示注释的第一个索引。[一个位置有很多注释,当我点击注释时,它需要显示顶部的注释,而当前没有显示。]