Hapus Opsi Tombol Informasi Dari Judul Anotasi Peta

PEMBUKAAN

Saya telah menerapkan anotasi peta menggunakan MKMapView dan MapAnnotation. Saat diketuk akan muncul tampilan judul seperti pada gambar berikut.

judul anotasi peta

Saya telah menggunakan LOC berikut untuk mengimplementasikan anotasi peta tersebut:

// VENUE 1 PIN.

CLLocationCoordinate2D venue1Location = CLLocationCoordinate2DMake(-27.5, 153.5);

MapAnnotation *venue1Pin = [[MapAnnotation alloc] initWithTitle:@"1 ONE ST" Location:venue1Location];

LIHAT METODE DELEGASI ANNOTASI:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MapAnnotation class]])
{
    MapAnnotation *venueLocationAnnotation = (MapAnnotation *)annotation;

    MKAnnotationView *venueLocationAnnotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"customAnnotation"];

    venueLocationAnnotationView.rightCalloutAccessoryView.hidden = YES;

    if (venueLocationAnnotationView == nil)

        venueLocationAnnotationView = venueLocationAnnotation.annotationView;

    else

        venueLocationAnnotationView.annotation = annotation;


        return venueLocationAnnotationView;

}
else
{
    return nil;
}

}

PERTANYAAN

Bagaimana cara menghapus tombol informasi dari tampilan judul anotasi peta tersebut?


person arman    schedule 19.02.2015    source sumber
comment
Harap tunjukkan metode delegasi viewForAnnotation Anda.   -  person    schedule 19.02.2015
comment
Silakan lihat di atas @Anna   -  person arman    schedule 19.02.2015
comment
Saya telah menerapkan venueLocationAnnotationView.rightCalloutAccessoryView.hidden = YES; metode dalam metode delegasi dan kelas anotasi khusus.   -  person arman    schedule 19.02.2015
comment
Di kelas MapAnnotation, sepertinya Anda memiliki metode bernama annotationView. Dalam metode itu, Anda harus menyetel rightCalloutAccessoryView. Itu membatalkan efek (jika ada) dari baris Hidden = YES yang muncul sebelum tampilan disetel.   -  person    schedule 19.02.2015
comment
Terima kasih atas sarannya. Saya menambahkan satu lagi yang tersembunyi = YES ke setiap ujung metode delegasi if / else dan tombol tersebut akhirnya menghilang. Adakah yang tahu cara memusatkan teks judul? @Anna   -  person arman    schedule 19.02.2015
comment
Jika Anda mengaturnya ke nihil, judulnya harus berada di tengah dengan benar. Menyetelnya ke tersembunyi masih menyisakan ruang untuk tampilan tersembunyi. Namun mengapa tidak memodifikasi metode annotationView itu sendiri dan tidak menyetel rCAV terlebih dahulu?   -  person    schedule 19.02.2015


Jawaban (3)


Anda dapat menggunakan pernyataan berikut:

Anda harus menerapkan metode delegasi berikut untuk ini:

 - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
         ...
         venue1Pin.rightCalloutAccessoryView = nil;
         ...
    }
person Yuvrajsinh    schedule 19.02.2015
comment
Saya telah menerapkan saran Anda. Tombol i tidak hilang. - person arman; 19.02.2015
comment
@arman sudahkah Anda menerapkan metode delegasi viewForAnnotation:? - person Yuvrajsinh; 19.02.2015
comment
Ya. Saya telah menerapkan MKMapView dan menyiapkan semua LOC yang relevan. Tampilan anotasi peta diatur dari kelas khusus dengan gambar dll. Gambar/judul berubah sesuai dengan berbagai masukan yang saya buat. - person arman; 19.02.2015
comment
Dalam kode OP, venue1Pin adalah objek model anotasi, bukan tampilan. Properti rightCalloutAccessoryView ada pada objek tampilan anotasi, bukan model. - person ; 19.02.2015

person    schedule
comment
Saya telah menerapkan saran Anda. Tombol i tidak hilang. - person arman; 19.02.2015
comment
Secara default, rightCalloutAccessoryView adalah nil ketika MKPinAnnotationView baru dibuat sehingga pengaturan properti tersembunyi tidak menghasilkan apa-apa (karena rCAV adalah nihil). Satu-satunya cara tombol ditampilkan adalah jika OP menyetel rCAV ke sesuatu yang dalam hal ini mereka tidak boleh menyetelnya sejak awal. - person ; 19.02.2015

person    schedule
comment
Saya telah menerapkan saran Anda. Tombol i tidak hilang. - person arman; 19.02.2015
comment
Secara default, rightCalloutAccessoryView adalah nil ketika MKPinAnnotationView baru dibuat sehingga pengaturan properti tersembunyi tidak menghasilkan apa-apa (karena rCAV adalah nihil). Selain itu, kode di dalam blok if (!pinView) tidak akan melakukan apa pun karena blok tersebut hanya dijalankan jika pinView bernilai nihil (dan menyetel properti pada objek nihil tidak berpengaruh). - person ; 19.02.2015