Có phương pháp trực tiếp hoặc bất kỳ đề xuất nào về cách nhận tất cả các chú thích từ MKMapView không?Chúng tôi có thể xem tất cả các chế độ xem chú thích từ MKMapView
Thnak bạn, Madan Mohan
Có phương pháp trực tiếp hoặc bất kỳ đề xuất nào về cách nhận tất cả các chú thích từ MKMapView không?Chúng tôi có thể xem tất cả các chế độ xem chú thích từ MKMapView
Thnak bạn, Madan Mohan
Bạn có thể truy cập vào các chú thích bản đồ bằng cách sử dụng tài sản annotations
của nó. Có thể không nhận được lượt xem cho tất cả các chú thích vì chú thích hiện không hiển thị trên bản đồ có thể không có lượt xem nào được liên kết với chúng, nhưng đối với chú thích tùy ý, bạn có thể thử xem bằng phương thức -viewForAnnotation:
.
Vì vậy, đây làm thế nào bạn có thể lặp qua chú thích tất cả của bản đồ và cố gắng truy cập vào quan điểm của họ:
for (id<MKAnnotation> annotation in mapView.annotations){
MKAnnotationView* anView = [mapView viewForAnnotation: annotation];
if (anView){
// Process annotation view
...
}
}
Trong nhanh chóng 3.
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
let selectedAnnotation = view.annotation
for annotation in mapView.annotations {
let viewI = mapView.view(for: annotation)
if !(viewI?.annotation is MKUserLocation){
if annotation.isEqual(selectedAnnotation) {
viewI?.image = UIImage(named: "focus.png")
showLifeEventView(anotation: view) //did select a point on Map.
}else{
viewI?.image = UIImage(named: "point.png")
}
}
}
}
Đó là một điều đáng sợ. . nó đã tiết kiệm thời gian của tôi. . –
này sẽ tạo ra một bộ mới của MKAnnotationViews - không trả lại những cái hiện có trên bản đồ của bạn. –
^Không, nó sẽ không tạo chú thích mới. Giải pháp gốc là chính xác. – n13
Aneil, tôi nghi ngờ bạn đang bối rối phương thức 'viewMap 'của' MKMapView' (hoạt động chính xác trong ví dụ của Vladimir) với phương thức 'MKMapViewDelegate'' mapView: viewForAnnotation: '(tạo chú thích, nhưng bạn không bao giờ gọi trực tiếp). – Rob