2011-07-22 39 views
6

Tôi thích thực hiện sth. như thế này. Tôi có hai chú thích với chú thích, nhưng MKMapView chỉ cho phép một chú thích được chọn cùng một lúc.Cách hiển thị nhiều chú thích từ MKAnnotationView?

[mapView selectAnnotation:self.firstAnnotation animated:FALSE]; 
[mapView selectAnnotation:self.secondAnnotation animated:FALSE]; 

Khi tôi chọn một chú thích khác, chú thích đầu tiên sẽ tự động được bỏ chọn.

Nhưng trong hình bên dưới, nó được triển khai thành công. Vậy làm thế nào điều này có thể được thực hiện? http://oi52.tinypic.com/14t3t09.jpg

Trả lời

5

Xem thêm "Nhiều callout chú thích hiển thị trong MKMapView": Multiple annotation callouts displaying in MKMapView

Dường như khuôn khổ không hỗ trợ nhiều lựa chọn, vì vậy bạn sẽ phải thực hiện các callout tùy chỉnh cho hành vi này. Câu trả lời cho câu hỏi được liên kết đề xuất đặt chú thích của bạn thành một phần của chế độ xem chú thích để bạn có thể tự mình quản lý lựa chọn. Cá nhân tôi thích thực hiện các chú thích dưới dạng một chú thích riêng - Tôi có một dự án ví dụ với các callout tùy chỉnh ở đây:

https://github.com/jacobjennings/JJMapCallout

đó là giải pháp của tôi để:

MKAnnotationView - Lock custom annotation view to pin on location updates

Trong dự án này, tôi chuyển tiếp các phương thức ủy quyền của MKMapView

- (void)mapView:(MKMapView *)aMapView didSelectAnnotationView:(MKAnnotationView *)aView 
- (void)mapView:(MKMapView *)aMapView didDeselectAnnotationView:(MKAnnotationView *)aView 

vào chú giải tương ứng. Điều này cho phép tôi thực hiện các hành vi chú thích dự kiến. Tuy nhiên, bạn có thể bỏ qua các thông báo didDeselectAnnotationView để hiển thị chú thích.

Để tìm hiểu xem người dùng chạm vào bản đồ để xóa chú thích (không nhấn vào ghim), hãy kiểm tra giá trị của mapView.selectedAnnotations trong phương thức didDeselectAnnotationView của bạn và nếu nó trống, bạn sẽ biết rõ ràng chú thích của bạn.

+0

tuyệt vời! cảm ơn bạn!! – baladurasa

+1

đọc giải pháp khác mà bạn đã liên kết và nhận thấy bạn đã thay đổi liên kết megaupload ở đó, bạn cũng nên thay đổi liên kết này! Công việc tốt đẹp... – whyoz

Các vấn đề liên quan