2011-09-09 3 views
0

저는 초급자이므로 을 놓치지 마십시오! 나는 사용자의 위치가 표시하는 코드와 "점프"를 사용 :"현재 위치 표시"버튼 (Maps.app처럼)

- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views { 
for(MKAnnotationView *annotationView in views) { 
    if(annotationView.annotation == mv.userLocation) { 
     MKCoordinateRegion region; 
     MKCoordinateSpan span; 

     span.latitudeDelta=0.002; 
     span.longitudeDelta=0.002; 

     CLLocationCoordinate2D location=mv.userLocation.coordinate; 

     region.span=span; 
     region.center=location; 

     [mv setRegion:region animated:TRUE]; 
     [mv regionThatFits:region]; 
    } 
} 

하지만이 버튼을 누를 때 나는 내가 어떻게 할 수있는 .. 그냥 요청하고 싶습니다?를 (기억하십시오 : 저는 초보자입니다!). 미리 감사드립니다!

답변

1

위의 setRegion을 호출하지 않고 단추를 누를 때 호출하면됩니다. 또는 [locationManager startUpdatingLocation] [locationManager stopUpdatingLocation]을 사용하여지도 업데이트를 설정하거나 해제 할 수 있지만 배터리를 태우는 데 남겨두면 신중을 기하시기 바랍니다.

+0

이 코드로 시도했지만 여전히 작동하지 않습니다 (버튼을 누르면 멈 춥니 다). '- (IBAction) goToLocation { MKMapView * mapView; MKUserLocation * myLocation = [mapView userLocation]; CLLocationCoordinate2D coord = [[myLocation location] 좌표]; MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance (coord, 350, 350); [mapView setRegion : 지역 애니메이션 : 예]; [UIView beginAnimations : nil context : NULL]; [UIView setAnimationDuration : 1]; [UIView commitAnimations]; }' – Netnyke

+0

beginAnimations, setAnimationDuration 및 commitAnimations에 대한 호출을 가져옵니다. 이미 애니메이션에 대한 setRegion 호출을 말했고, 여기에서하는 것보다 더 잘 할 것입니다. 디버거를 사용하여 여전히 문제가 발생하면 어떤 줄이 정지되는지 확인하십시오. –

+0

그리고이 라인을 다시 거기에 추가하는 것이 좋습니다 : region.span = span; region.center = location; –