2012-03-09 2 views
2

나는 사용자가 버튼 다음지도보기 항상 센터지도

[mapview setShowsUserLocation:YES]; 

와 테 사용자의 위치에지도의 중심을 때라도를 누를 때 내 위치를 얻기 위해 다음 코드를 사용

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation  
{ 
    [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES]; 
} 

제 질문은지도가 항상 내 위치에 집중하지 못하게하는 것입니다. 사용자가지도를 이동하는 것을 허용하려고합니다.

+0

어떻게지도를 중심으로 대리자의 호출을 제거하는 방법에 대한? 바로 거기에 있습니다. – Abizern

답변

4

나는 그것이 iOS5와 함께 왔다고 생각한다. 이제 당신은 위임 물건들을 버리고 그냥 MKMapView의 userTrackingMode를 설정할 수있다. MKUserTrackingModeFollow로 설정하여 사용자와 함께 이동 한 다음지도 주위를 패닝하여 추적 모드를 자동으로 해제하면 다시 켜기위한 버튼을 제공하면됩니다. 설정 특성 좋은 일

mapView.setUserTrackingMode(.follow, animated: true) 

:하지만 3 빠른에

+0

사실이 아닙니다. 추적 모드 기술로지도를 다시 방문합니다. –

+1

예. 추적 모드가 켜져 있으면 추적 모드를 사용할 수 없게 될 때까지지도를 다시 유지합니다. 무엇이 OP가 요구 한 것과 정확히 맞습니까? – Craig

6

지도를 처음 표시 할 때만 위치의 중심에 위치하십시오. 여기에 몇 가지 의사 코드는 ...

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation  
    { 

     if(shouldCenterLocation){ 
      [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES]; 
      shouldCenterLocation = FALSE; 

     } 
     //do all your other stuff here 
    } 

shouldCenterLocation는 다음 TRUE에지도가 표시되는 첫 번째 시간을 설정 뷰를 종료 할 때까지 FALSE로 설정 할 수있는 부울 플래그 (또는 다른 조건 당신입니다 센터 위치를 표시해야 함).

편집 : 버튼 누름을 처리하는 것과 동일한 방법으로 shouldCenterLocation의 상태를 전환 할 수 있습니다.

+3

첫 번째 픽스는 정확하지 않을 수 있습니다. 수평 정확도가 정착되기 전에 충분히 정확했는지 확인하는 것이 좋습니다. – Craig

1

나는 애니메이션 방법을 사용하여 선호

mapView.userTrackingMode = .follow 
관련 문제