作者:裡脊串 授權本站轉載。
最近在優化地圖的體驗 用到了一些小技巧 這裡分享一下
判斷一個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) { }];
如果將上面的功能組合起來 我們可以得到一個很不錯的地圖位置切換效果