O MKMapView monitora constantemente o cabeçalho
Estou renderizando algum conteúdo em uma camada que fica em cima da minhaMKMapView
. A coisa toda funciona muito bem, com exceção da rotação. Quando um usuário gira o mapa, preciso poder girar o que estou renderizando em minha própria camada.
A resposta padrão que encontrei é usar:
NSLog(@"heading: %f", self.mapView.camera.heading");
O problema é que o conteúdo da variável de cabeçalho é atualizado apenas quando o gesto de pinçar / girar termina, e não durante o gesto. Preciso de atualizações muito mais frequentes.
Não há propriedade de cabeçalho novisão do mapa em si.
Eu pensei que talvez usandoKVO assim:
// Somewhere in setup
[self.mapView.camera addObserver:self forKeyPath:@"heading" options:NSKeyValueObservingOptionNew context:NULL];
// KVO Callback
-(void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context{
if([keyPath isEqualToString:@"heading"]){
// New value
}
}
No entanto, oKVO O ouvinte nunca dispara, o que não é surpreendente.
Existe um método que estou ignorando?