Obecnie pracuję z mapkitem i utknąłem.
Mam niestandardowy widok adnotacji, którego używam, i chcę użyć właściwości obrazu, aby wyświetlić punkt na mapie z własną ikoną. Mam to działa dobrze. Ale chciałbym również zastąpić domyślny widok objaśnienia (dymek, który pojawia się z tytułem / podtytułem po dotknięciu ikony adnotacji). Chcę mieć możliwość kontrolowania samego objaśnienia: zestaw map zapewnia dostęp tylko do lewego i prawego pomocniczego widoku objaśnień, ale nie ma możliwości zapewnienia niestandardowego widoku dla dymka objaśnienia, nadania mu zerowego rozmiaru lub czegokolwiek innego.
Mój pomysł polegał na nadpisaniu selectAnnotation / deselectAnnotation w moim MKMapViewDelegate
, a następnie narysowaniu własnego widoku niestandardowego, wywołując mój niestandardowy widok adnotacji. To działa, ale tylko wtedy, gdy canShowCallout
jest ustawione na YES
w mojej niestandardowej klasie widoku adnotacji. Te metody NIE są wywoływane, jeśli ustawię to na NO
(co jest tym, czego chcę, aby domyślny bąbelek wywołania nie był rysowany). Nie mam więc możliwości dowiedzenia się, czy użytkownik dotknął mojego punktu na mapie (zaznaczył go) lub dotknął punktu, który nie jest częścią moich widoków adnotacji (usunął go) bez wyświetlania domyślnego widoku dymka objaśnień.
Próbowałem pójść inną ścieżką i po prostu sam obsługiwać wszystkie zdarzenia dotykowe na mapie, ale nie wydaje mi się, aby to działało. Czytałem inne posty związane z łapaniem zdarzeń dotykowych w widoku mapy, ale nie są one dokładnie tym, czego chcę. Czy istnieje sposób, aby zagłębić się w widok mapy, aby usunąć dymek objaśnienia przed rysowaniem? Jestem zagubiony.
Jakieś sugestie? Czy brakuje mi czegoś oczywistego?