Objective-C для чайников: Как изменить регион, не вызывая mapView: regionDidChangeAnimated? - PullRequest
0 голосов
/ 21 марта 2011

так что у меня есть загадка.Я изменяю область MKMapView в коде, который работает, однако он вызывает mapView:regionDidChangeAnimated, который отменяет мою проверку, если пользователь фактически перемещает карту.Итак, мне трудно понять, как вручную установить регион в коде, а также проверить, изменяет ли его пользователь (это также 2:30 утра, и мой мозг на самом деле не сотрудничает ...).В любом случае, вот мой код:

- (void)displayMyLocation:(CLLocation *)location {
    if (!userChangedRegion) {
        MKCoordinateSpan span;
        MKCoordinateRegion region;

        span.latitudeDelta = 0.02;
        span.longitudeDelta = 0.02;

        region.center = location.coordinate;
        region.span = span;

        [map setRegion:region];
    }
}

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    userChangedRegion = YES;
}

Заранее спасибо!

1 Ответ

2 голосов
/ 21 марта 2011

Если вы просто пытаетесь пропустить настройку userChangedRegion, когда вы меняете регион, вы можете использовать вторую переменную programChangedRegion, чтобы отследить, устанавливаете ли вы регион в данный момент.

Например:

        programChangedRegion = YES;
        [map setRegion:region];
    }
}

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    if (programChangedRegion == YES) {
        programChangedRegion = NO;
    } else {
        userChangedRegion = YES;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...