0

こんにちは、ユーザーが次のコードに入ったときに注釈の画像を変更しようとしています

- (void)locationManager:(CLLocationManager *)manager   didUpdateToLocation:(CLLocation *)newLocation  fromLocation:(CLLocation *)oldLocation
{
    for (int i = 0; i < [_annotationArray count]; i++)
    {
        //MKAnnotation xxx = [_annotationArray objectAtIndex:i];

        Shadows* shadowObj2 = [_shadowArray objectAtIndex:i];

        NSLog(@"%@",_shadowArray);

        CLLocationCoordinate2D location3;

        location3.latitude  =  [shadowObj2.position_x floatValue];
        location3.longitude =  [shadowObj2.position_y floatValue];

        CLLocation* locationold = [[CLLocation alloc] initWithLatitude:location3.latitude longitude:location3.longitude];

        CLLocationDistance kilometers = [newLocation distanceFromLocation:locationold];

        //temp = [kilometers intValue];

        if (kilometers > 50 && kilometers <100)
        {
            MKAnnotationView* newA = [[MKAnnotationView alloc] initWithAnnotation:[_annotationArray objectAtIndex:i] reuseIdentifier:@"annotation1"];
            newA.image = [UIImage imageNamed:@"shadowS.png"];
            newA.canShowCallout = YES;
        }

        [locationold release];
        //[shadowObj2 release];
    }

}

しかし、注釈画像を変更できません。変更できない理由を教えてください

4

2 に答える 2

2

チュートリアルに従ってカスタム注釈を作成できます

http://blog.asolutions.com/2010/09/building-custom-map-annotation-callouts-part-1/

于 2011-03-25T09:00:07.797 に答える
0

このコードはマップ ビューとは関係がないと思います。新しい画像で MKAnnotationView の新しいインスタンスを割り当てています。これは、マップ上に既にある既存のものを変更しません。あなたがする必要があるのは、マップビューのビューで注釈の距離を確認し、そこでその画像を変更することです。

于 2011-03-25T09:33:32.840 に答える