2014-02-28 31 views
1

當點擊針(註釋)時,彈出式視圖顯示彈出式視圖,顯示正常,此後,當我放大或縮小地圖時,彈出式窗口未移動到根據到地圖縮放。所以我正在解決附帶圖片中的問題。 如何根據地圖上的尊重引腳移動彈出窗口(何時縮放地圖)?當地圖放大時,針上的彈出式對話框並未移動

任何建議是非常有幫助的。提前

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view 
{ 

    NSString *strTitle = [NSString stringWithFormat:@"%@",[view.annotation title]]; 
    NSMutableDictionary *dict; 
    NSMutableArray *temp = annotationArray; 
    for (int i = 0; i<[temp count]; i++) 
    { 
     dict = (NSMutableDictionary*)[temp objectAtIndex:i]; 
     NSString *strAddress = [NSString stringWithFormat:@"%@",[dict valueForKey:@"name"]]; 
     if([strAddress isEqualToString:strTitle]) { 

      [mapView deselectAnnotation:view.annotation animated:YES]; 

      detailsViewController = [[PopOverViewController alloc] initWithNibName:@"PopOverViewController" bundle:nil]; 
//   [viewsPassage addObject:view]; 

//   NSOrderedSet *orderedSet = [[NSOrderedSet alloc] initWithArray:viewsPassage]; 
//   viewsPassage = [[NSMutableArray alloc] initWithArray:[orderedSet array]]; 
      if ([viewsPassage containsObject:view]) { 
       NSLog(@"present"); 
       [self.poc dismissPopoverAnimated:YES]; 
      } 

      self.poc = [[UIPopoverController alloc] initWithContentViewController:detailsViewController]; 
      self.poc.contentViewController.view.alpha = 0; 
      [viewsPassage addObject:userMapView]; 
      [self.poc setPassthroughViews:viewsPassage]; 
      [detailsViewController.textLabel setText:strAddress]; 
      //size as needed 
      self.poc.popoverContentSize = CGSizeMake(320, 400); 
      //show the popover next to the annotation view (pin) 
      CGRect popOverFrame = view.bounds; 
      popOverFrame.size.width = 14; 
      popOverFrame.size.height = 14; 

      [self.poc presentPopoverFromRect:popOverFrame inView:view 
       permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
      break; 
     } 
    } 

} 

Issue am showing with arrow in the attached image.

感謝

+0

請說明問題在解密 –

+0

我已經更新可以檢查它 – iOSDev

+0

您是否使用annotationView的標註? –

回答

1

像所有的意見,你的酥料餅位於相對於視座標,但你希望它移動,就好像它是根據地圖座標位於。這不會自動發生。相反,您需要在地圖區域更改時移動彈出窗口。地圖視圖委託協議中有方法可以讓地圖委託在區域更改時採取行動;看看-mapView:regionDidChangeAnimated:

作爲一種替代方案,可以考慮popover可能不是正確的工具,而custom callout可能是更好的解決方案。

+0

沒錯。然而,鏈接的答案基本上是OP已經在做的事情。對於自動隨註釋移動的「真實」自定義標註,標註視圖本身必須添加到註釋視圖中(儘管這有其自身的問題)。在地圖根據您的回答移動時,最好僅在委託方法中重新顯示彈出窗口。 – Anna

+0

@Anna:你有沒有在iPad模擬器/設備上看過Apple Maps – iOSDev