Khai thác vòng tròn màu xanh rung đại diện cho userLocation sẽ hiển thị chú thích "Vị trí hiện tại". Có cách nào để ngăn chặn điều đó không?Cách tắt chú thích "Vị trí hiện tại" trong chế độ xem bản đồ
Trả lời
Có một tài sản trên quan điểm chú thích bạn có thể thay đổi, một khi vị trí người sử dụng đã được cập nhật:
Bạn có thể đặt title
để trống để ngăn chặn các callout:
mapView.userLocation.title = @"";
Edit:
Một cách đáng tin cậy hơn có thể là để trống tiêu đề trong phương pháp didUpdateUserLocation
đại biểu:
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
userLocation.title = @"";
}
hoặc trong viewForAnnotation
:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>) annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
{
((MKUserLocation *)annotation).title = @"";
return nil;
}
...
}
Đặt tiêu đề trong phương thức ủy quyền cho phép bạn chắc chắn bạn có một phiên bản userLocation thực sự để làm việc.
Cảm ơn! Tôi biết tôi có thể thay đổi tiêu đề và phụ đề nhưng không biết đặt tiêu đề cho một chuỗi trống sẽ ngăn chặn nó. – charudatta
Trả lời bởi @jowie là tốt hơn. Sử dụng phương pháp đó để thay thế. – Anna
@ Anna không được nhưng chưa thành công - bất kỳ suy nghĩ nào về cách chặn bong bóng chú thích mặc định hoàn toàn (như trên và có, @jowie trả lời có thể tốt hơn) mà không chặn 'mapView: didSelectedAnnotationView: 'được gọi? –
Tôi có hai cách để giúp bạn:
đàn áp trong mapViewDidFinishLoadingMap
func mapViewDidFinishLoadingMap(_ mapView: MKMapView) { mapView.showsUserLocation = true //suppress the title mapView.userLocation.title = "My Location" //suppress other params
}
đàn áp trong didUpdate
func mapView(_ mapView: MKMapView, didUpdate userLocation: MKUserLocation) { //suppress the title mapView.userLocation.title = "My Location" //suppress other params }
Swift 4
// MARK: - MKMapViewDelegate
func mapViewDidFinishLoadingMap(_ mapView: MKMapView) {
if let userLocationView = mapView.view(for: mapView.userLocation) {
userLocationView.canShowCallout = false
}
}
Đôi khi vị trí không thể xác định được và MKUserLocation chuyển sang màu xám. Chú thích vẫn đang được hiển thị trong trường hợp đó. Câu trả lời này không đúng. – Andy
làm điều này một mình không làm việc cho tôi trên iOS 10. xử lý trong 'viewForAnnotation' hoạt động. –