У меня есть следующий код на месте:MapKit - уровень масштабирования поддерживает сброс
-(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. Как сохранить идентификатор уровня масштабирования, который пользователь увеличивает или увеличивает, так как каждый раз, когда новое обновление местоположения принимается, уровень масштабирования сбрасывается.
Есть ли способ обнаружить, что пользователь увеличил или уменьшил масштаб?
UPDATE
Я добавить метод 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] Регион меняла.
центр теперь 54,181150, -8,483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 31,063 Legginit [2948: 307] Регион меняла.
центр теперь 54,181150, -8,483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 31,653 Legginit [2948: 307] Регион меняла.
центр теперь 54,181150, -8,483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 32,582 Legginit [2948: 307] Регион меняла.
центр теперь 54,181150, -8,483177, Deltas = 0.050000,0.050000
2010-11-01 15: 17: 33,608 Legginit [2948: 307] Регион меняла.
центр теперь 54,181150, -8,483177, Deltas = 0.050000,0.050000
Как я приближать по телефону я ожидал Значения Delta, чтобы измениться, но они остаются на уровне 0,05. Не понимаю, как это работает. Я думал, что могу захватить значения Delta и сохранить их, чтобы я мог сбросить уровень масштабирования, если пользователь выйдет и снова войдет в карту.
С уважением, Стивеном
aBitОчевидно, я пошел по пути использования regionWillChangeAnimated. Я обновил свой вопрос выше, не могли бы вы быстро взглянуть, если у вас есть минута. Я не думаю, что понимаю, как это работает. – Stephen
Я обновил ответ. – Anna