Attualmente sto lavorando con il mapkit e sono bloccato.
Sto utilizzando una vista annotazione personalizzata e desidero utilizzare la proprietà dell'immagine per visualizzare il punto sulla mappa con la mia icona. Questo funziona bene. Ma quello che vorrei fare è anche sovrascrivere la visualizzazione callout predefinita (la bolla che appare con il titolo / sottotitolo quando viene toccata l'icona dell'annotazione). Voglio essere in grado di controllare il callout stesso: il mapkit fornisce solo l'accesso alle viste di callout ausiliarie sinistra e destra, ma non è possibile fornire una visualizzazione personalizzata per la bolla di callout, o per dargli dimensione zero o qualsiasi altra cosa.
La mia idea era di sovrascrivere selectAnnotation / deselectAnnotation in my MKMapViewDelegate
, quindi disegnare la mia vista personalizzata effettuando una chiamata alla mia vista di annotazione personalizzata. Funziona, ma solo quando canShowCallout
è impostato su YES
nella mia classe di visualizzazione delle annotazioni personalizzate. Questi metodi NON vengono chiamati se ho impostato su NO
(che è quello che voglio, in modo che la bolla di callout predefinita non venga disegnata). Quindi non ho modo di sapere se l'utente ha toccato il mio punto sulla mappa (selezionato) o ha toccato un punto che non fa parte delle mie viste di annotazione (eliminato) senza che venga visualizzata la vista a bolle di callout predefinita.
Ho provato a seguire un percorso diverso e gestire da solo tutti gli eventi di tocco nella mappa, e non riesco a farlo funzionare. Ho letto altri post relativi alla cattura di eventi tattili nella visualizzazione mappa, ma non sono esattamente ciò che voglio. C'è un modo per scavare nella vista mappa per rimuovere la bolla di richiamo prima di disegnare? Sono in perdita.
Eventuali suggerimenti? Mi manca qualcosa di ovvio?