Bagaimana Cara Menampilkan Callout untuk Wilayah MKOverlay?

Saya telah menggunakan pengenal isyarat danboundingRect untuk overlay tertentu guna menentukan kapan pengguna mengetuknya. Namun sekarang saya ingin membuat info muncul di wilayah hamparan yang diketuk pengguna, seperti yang dilakukan untuk anotasi. Haruskah saya membuat overlay sebagai anotasi untuk mencapai hal ini? Terima kasih.


person Stunner    schedule 03.02.2011    source sumber


Jawaban (1)


Overlay juga merupakan objek anotasi jika Anda mau.

Dari Panduan Pemrograman Kesadaran Lokasi :

Protokol MKOverlay sesuai dengan protokol MKAnnotation. Hasilnya, semua objek overlay juga merupakan objek anotasi dan dapat diperlakukan sebagai salah satu atau keduanya dalam kode Anda. Jika Anda memilih untuk memperlakukan objek overlay sebagai keduanya, Anda bertanggung jawab untuk mengelola objek tersebut di dua tempat. Jika Anda ingin menampilkan tampilan overlay dan tampilan anotasi, Anda harus mengimplementasikan metode mapView:viewForOverlay: dan mapView:viewForAnnotation: di delegasi aplikasi Anda. Ini juga berarti bahwa Anda harus menambah dan menghapus objek dari susunan overlay dan anotasi peta Anda.

person petert    schedule 03.02.2011
comment
Terima kasih atas tipnya, namun saya bingung bagaimana cara membuat overlay untuk dijadikan anotasi. Bisakah Anda memberikan kode contoh di area ini? Subkelas MKAnnotationView biasanya memiliki UIImage sebagai variabel dan dalam metode initWithAnnotation:reuseIdentifier: tidak ada cara untuk secara dinamis menentukan lebar dan tinggi bingkai dari lebar dan tinggi poligon (dari anotasi yang diteruskan), bukan? Terima kasih. - person Stunner; 04.02.2011
comment
Kode contoh MapCallouts mungkin bisa membantu? Ini menunjukkan MKAnnotations dengan info khusus - developer.apple.com/ perpustakaan/ios/#samplecode/MapCallouts/ - person petert; 04.02.2011
comment
tidak berfungsi bagi saya, saya memperlakukan MKPolyLine sebagai MKAnnotation, tetapi gagal. Setelah saya menambahkanAnnotation: ke tampilan peta, bukan memicu panggilan kembali - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id ‹MKAnnotation›)annotation - person user501836; 19.04.2012
comment
Apakah delegasi merupakan referensi yang valid karena mapView:viewForAnnotation adalah metode dalam protokol delegasi (developer.apple.com/library/ios/#documentation/MapKit/Reference/) - person petert; 19.04.2012
comment
Bisakah Anda merinci jawabannya dengan beberapa contoh nyata? Saya tidak dapat menampilkan info di atas overlay. - person michael-martinez; 29.12.2019