2012-04-16 116 views
1

我在嘗試使用MKMapView時遇到了麻煩。這是我第一次嘗試使用其中的一種,但我一直無法弄清楚如何使用它。這裏有兩段不同的示例代碼,我曾經試圖得到它的工作既不工作:MKMapView故障

mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)]; 
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(latitude, longitude), metersPerMile*0.5, metersPerMile*0.5); 
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region]; 
[mapView setRegion:adjustedRegion]; 

mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)]; 
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(latitude, longitude), metersPerMile*0.5, metersPerMile*0.5); 
[mapView setRegion:region]; 

mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)]; 
[self.mapView setRegion:MKCoordinateRegionMake(CLLocationCoordinate2DMake(latitude, longitude), MKCoordinateSpanMake(0.01, 0.01))]; 

所有這些片斷的代碼對MKMapView完全沒有任何作用。無論什麼時候視圖結束加載,它什麼都不做,我只是留意所有的北美,這不是很有幫助。

如果有人能幫我解決這個問題,我將不勝感激。

+0

只是檢查你指的是顯示在你的屏幕實際的MapView 。您可能將該區域設置爲其他一些mapview。 – sElanthiraiyan 2012-04-16 07:08:35

+0

我確實檢查過,並仔細檢查過。這就是我稱之爲initWithFrame:方法的原因,以便我確信我看到的mapView是我正在與之交互的那個。 – Joe 2012-04-16 16:32:57

+0

我同意ElanthiraiyanS。您正在上面的每個示例中創建一個新的mkmapview,但不會顯示將其添加到視圖中的任何代碼。爲什麼不使用已經存在的xib並通過插座連接(假設您已經使用xib來設置界面)? – Craig 2012-04-16 20:55:33

回答

1

你還沒有添加地圖到您的看法..喜歡[self.view addSubView:mapView];

0

我告訴用戶,他是通過實現 - MapView類:viewForAnnotation:從MKMapViewDelegate。看看這個:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{ 
    // If it's the user location, return nil. 
    if ([annotation isKindOfClass:[MKUserLocation class]]) 
    { 
      MKCoordinateSpan coordinateSpan = MKCoordinateSpanMake(0.009, 0.009); 
      [mapView setRegion:MKCoordinateRegionMake(annotation.coordinate, coordinateSpan) animated:YES]; 
    } 
    return nil; 

}

0

如果你綁加載的MapView,這將有助於

- (void)mapViewWillStartLoadingMap:(MKMapView *)mapView 
    { 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 
    NSLog(@"map loading..."); 
    }