最近在优化地图的体验 用到了一些小技巧 这里分享一下
判断一个Annotation是否在当前地图中可见
MKMapRect visibleMapRect = self.mapView.visibleMapRect;
NSSet *visibleAnnotations = [self.mapView annotationsInMapRect:visibleMapRect];
if ( [visibleAnnotations containsObject:anno] )
{
//可见
}
将地图缩放到某个合适的位置 使一些Annotation同时可见
[self.mapView showAnnotations:@[anno1,anno2,anno3] animated:YES];
//使所有Annotation都可见
[self.mapView showAnnotations:self.mapView.annotations animated:YES];
控制MapView动画的时间
[MKMapView animateWithDuration:0.8 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
[self.mapView setCenterCoordinate:anno.coordinate animated:YES];
} completion:^(BOOL finished) {
}];
如果将上面的功能组合起来 我们可以得到一个很不错的地图位置切换效果