У меня есть следующий код:
-(void)viewDidLoad
{
//Set Zoom level using Span
MKCoordinateSpan span;
span.latitudeDelta = 0.05;
span.longitudeDelta = 0.05;
region.span = span;
}
-(void)locationChange:(CLLocation *)newLocation: (CLLocation *)oldLocation
{
// This zooms in on the users current loation.
curlocation = newLocation.coordinate;
region.center = curlocation;
[_mapView setRegion:region animated:TRUE];
}
Изначально уровень масштабирования устанавливается в соответствии с кодом в ViewDidLoad. Как сохранить идентификатор уровня масштабирования, который пользователь увеличивает или уменьшает, поскольку каждый раз, когда получено новое обновление местоположения, уровень масштабирования сбрасывается.
Есть ли способ обнаружить, что пользователь увеличил или уменьшил масштаб?
ОБНОВЛЕНИЕ
Я добавил метод regionDidChangeAnimated следующим образом:
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
NSLog(@"Region DID change. Center is now %f,%f, Deltas=%f,%f",
region.center.latitude, region.center.longitude,
region.span.latitudeDelta, region.span.longitudeDelta);
}
Вывод в журнале выглядит так:
2010-11-01 15: 17: 29.317 Legginit [2948: 307] Изменение DID региона.
Центр теперь 54.181150, -8.483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 30.553 Legginit [2948: 307] Изменение DID региона.
Центр теперь 54.181150, -8.483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 31.063 Изменение DID региона Legginit [2948: 307].
Центр теперь 54.181150, -8.483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 31.653 Legginit [2948: 307] Изменение DID региона.
Центр теперь 54.181150, -8.483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 32.582 Legginit [2948: 307] Изменение DID региона.
Центр теперь 54.181150, -8.483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 33.608 Legginit [2948: 307] Изменение DID региона.
Центр теперь 54,181150, -8,483177, Deltas = 0,050000,0,050000
Когда я увеличивал масштаб изображения телефона, я ожидал, что значения дельты изменятся, но они остались на уровне 0,05. Я неправильно понимаю, как это работает. Я думал, что могу захватить значения Delta и сохранить их, чтобы я мог сбросить уровень масштабирования, если пользователь выйдет и снова войдет на карту.
С уважением, Стивен