Ho una sovrapposizione sulla mappa e vorrei cambiare le sue coordinate. Per fare ciò, chiamerò il metodo setNeedsDisplayInMapRect: dopo che la modifica è stata apportata alla vista.Cambia coordinate di MKOverlay per un MKOverlayView
Ho testato questo fuori, semplicemente cambiando il fillColor e funziona benissimo:
overlayView.fillColor = [[UIColor greenColor] colorWithAlphaComponent:0.3];
[overlayView setNeedsDisplayInMapRect:mapView.visibleMapRect];
Tuttavia ho apparentemente colpito un muro di mattoni cercando di cambiare anche le coordinate del centro del mio punto di vista di sovrapposizione (che è un MKCircleView con un MKCircle). C'è un metodo in MKAnnotation, a cui è conforme MKCircle, chiamato setCoordinate: - che sembra quello di cui ho bisogno. Sfortunatamente, la proprietà circle
in MKCircleView è in sola lettura. Inoltre, la proprietà overlay
in MKOverlayView è anche in sola lettura.
C'è davvero un modo per modificare le coordinate di una sovrapposizione, senza ricorrere alla rimozione della vista di sovrapposizione e aggiungerne una nuova (che causerebbe uno sfarfallio molto evidente sullo schermo).?
Ho avuto un problema simile a vista MKPolyline. Nel mio caso la linea si allunga sempre, quindi disegno sempre due polilinee, quindi rimuovo quella più vecchia. In questo modo la linea più lunga nasconde lo sfarfallio. – theaob