これは私の小さな方法で、ロケーションマネージャーの現在の場所を取得し、マップをその少し上にフォーカスして、マップの上部に追加した他のサブビュー用のスペースを確保します。スパンの緯度/経度のデルタが大きくなりすぎると(1.0を超える)、リージョンが設定されるたびに、実際にマップに触れなくても、マップが完全にズームアウトされるまで、スパンはどんどん大きくなります。マップビューのスパンを再利用することと関係があると思いますが、何が起こっているのか正確にはわかりません。
- (void)setRegion {
CLLocationCoordinate2D coord = locationManager.location.coordinate;
MKCoordinateSpan span = mapView.region.span;
coord.latitude += 0.002 * (span.latitudeDelta / 0.012523);
MKCoordinateRegion region = MKCoordinateRegionMake(coord, span);
[mapViewGlobal setRegion:region animated:animated];
}