MapView类没有显示蓝点当前位置

问题描述 投票:1回答:6

在我的iPhone应用程序,我使用的MKMapView显示位置,第一次显示一个蓝色dot.But当前的位置,如果客场地图拖动,点击当前位置的按钮,它不显示蓝点(但我能够返回当前位置区域)

-(IBAction)currntLctnClick:(id)sender{
  [map setCenterCoordinate:map.userLocation.location.coordinate animated:YES];
}    
iphone mkmapview mapkit
6个回答
2
投票

你已经实现了viewForAnnotation功能?你检查,你没有图纸(或不画)一种不同的引脚为MKUserLocation的?


2
投票

要显示你的当前位置与蓝点

- (void)viewDidLoad
{
    yourMapView.showsUserLocation=YES;
}

导航到您当前的位置上按一下按钮

-(IBAction)currntLctnClick:(id)sender
{
    MKCoordinateRegion location = MKCoordinateRegionMakeWithDistance(yourMapView.userLocation.coordinate, 10000.0, 10000.0);

    [yourMapView setRegion:location animated:YES];
}

编辑 或者,如果你仍然蓝点是不可见的则刚刚从厦门国际银行和拖动删除您MapView,并再次将其删除。


2
投票

考虑到你说,你可以看到在第一次加载用户的位置,它是安全的假设您已经setShowsUserLocation:设置为YES。

你有没有在您的视图控制器实现- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation

如果是的话,一定要避免提供内置的用户位置标记注释视图。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
    //check annotation is not user location
    if([annotation isEqual:[mapView userLocation]])
    {
        //bail
        return nil;
    }

    static NSString *annotationViewReuseIdentifer = @"map_view_annotation";

    //dequeue annotation view
    MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:annotationViewReuseIdentifer];

    if(!annotationView)
    {
        annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationViewReuseIdentifer];
    }

    //set annotation view properties
    [annotationView setAnnotation:annotation];

    return annotationView;
}

1
投票

所有这些谁来到这里,通过搜索谷歌地图的解决方案 - 这是你需要设置正确的属性。

雨燕3.0

self.mapView.isMyLocationEnabled=true

0
投票
 [map setShowsUserLocation:YES];  

0
投票

只是检查注释MKUserLocation而在viewForAnnotation方法迭代并返回零如果这是真的。

它的工作原理,那是因为MKUserLocation也mapView.annotations阵列的一部分,你只需要通过它传递不作任何修改。

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {

guard !(annotation is MKUserLocation)  else { return nil }

// your viewForAnnotation code...                                              
}
© www.soinside.com 2019 - 2024. All rights reserved.