2012-02-13 8 views
0

다음은 내가 거기에 이미지를 표시 할 필요가 ???????? 말을 볼 수있는 곳 당신은 라인을 볼 수 있습니다 내 MapKitDisplayViewController.m논리 문제 - MapKit

- (void)viewDidLoad { 
    [super viewDidLoad]; 

     [mapView setMapType:MKMapTypeStandard]; 
     [mapView setZoomEnabled:YES]; 
     [mapView setScrollEnabled:YES]; 
     MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
     region.center.latitude = 22.569722 ; 
     region.center.longitude = 88.369722; 
     [mapView setRegion:region animated:YES]; 

     [mapView setDelegate:self]; 

     DisplayMap *ann = [[DisplayMap alloc] init]; 
     ann.title = [person name]; 
     ann.subtitle = [person address]; 
     ann.person = person; 

     ann.coordinate = region.center; 
     [mapView addAnnotation:ann]; 
} 
-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation: 
(id <MKAnnotation>)annotation { 
     MKPinAnnotationView *pinView = nil; 
     if(annotation != mapView.userLocation) 
     { 
       static NSString *defaultPinID = @"com.invasivecode.pin"; 
       pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID]; 
       if (pinView == nil) pinView = [[[MKPinAnnotationView alloc] 
                        initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease]; 
       UIImageView *iconView = [[UIImageView alloc] initWithImage: [UIImage imageWithString:@?????????????????]; 
       annotationView.leftCalloutAccessoryView = iconView; 

       pinView.pinColor = MKPinAnnotationColorRed; 
       pinView.canShowCallout = YES; 
       pinView.animatesDrop = YES; 
       } 

     return pinView; 
} 

입니다.

사용자가 핀 포인트를 클릭하면 팝업이 나타납니다. 제목, 부제 및 이미지가 팝업에 표시되는 것으로 가정합니다. 나는 다음 라인이 그 팝업을위한 이미지를 보여야한다고 생각한다. 그러나 Person 객체 (또는 person 객체를 포함하는 pipoint) 이미지 URL을이 메소드에 전달할 수 없습니다. 선택한 이미지 URL을 여기에 표시하도록 도와 줄 수 있습니까?

+0

가 ?????의 제거하고 우리에게 실패하고 실패 정확히 어떻게 우리에게 코드를 표시하기입니다. –

+0

실패하지 않습니다. 나는 사용자가 선택한'person' 객체를'viewForAnnotation' 메소드에 넘기는 법을 알아야합니다. – shajem

답변

0

이 내가 무슨 짓을했는지는 viewForAnnotation 방법에

DisplayMap *dm= (DisplayMap *)annotation; 

NSString *url = [dm.person urlOfPerson]; 
0

실패하지 않습니다. 사람 객체를 전달하는 방법을 알아야합니다. 사용자가 viewForAnnotation 메소드를 선택하도록

Ahhh, 알 수 있습니다. 나는 비슷한 문제가있어서 힘들 수 있습니다. 제 주석 코드를 다시 작성하는 중입니다. 작동하지 않기 때문에 볼 수 있습니다. 그러나 나중에 가져올 수있는 것을 저장해야합니다.

개체 MKAnnotation을 만들었습니다.

@interface FotoMapLocation : NSObject <MKAnnotation> { 

그래서 주석을 만들 때 FotoMapLocation 객체를 만듭니다.

FotoMapLocation *annotation = [[FotoMapLocation alloc] initWithTitle:title 
                  subtitle:subtitle 
                   foto:aFoto 
                 thumbnailImage:aFoto.thumbnailImage 
           ]; 
    [mapView addAnnotation:annotation]; 

지금, 당신은 아무것도 여기를 저장할 수 있습니다. 따라서 하위 클래스에 Person 객체를 저장하십시오.

나는 이것이 단지 중간에 있다는 것을 알고 있으며 매우 소란 스럽다. 하지만 코드를 추출하는 중이었고 다른 화재가 발생하여 현재 중간 상태에 있습니다. 그러나 나는 며칠 안에 그걸로 돌아갈 것으로 기대합니다. 다시 확인해 보겠습니다. 아무 것도 없으면이 답변을 업데이트하겠습니다.

+0

그래서 사용자가'viewForAnnotation' 메소드로 선택한'person' 객체를 전달하는 다른 방법은 없을까요? – shajem

+0

흠, 무슨 뜻인지 알 겠어. 당신은 이미 내가 제안한 것을하고 있습니다. 당신의 "person"객체는 이미 주석에 있습니다. 제목이나 부제가 고유합니까? 그렇다면 제목 또는 부제를 키로 사용하여 NSMutableDictionary를 유지하십시오. 그 방법으로 사람 객체를 검색 하시겠습니까? 현재 제 코드가 작동되기를 바랍니다. 나는 그것을 여러분에게 줄 것입니다. 하지만 적어도 이번 주 VC 자금 준비에 1 주일 남았습니다. –

+0

해결책을 찾았습니다. 나는 대답으로 그것을 포함시켰다. 보세요, 도움이되기를 바랍니다. 벤처 캐피탈에 대한 행운 : – shajem