MKOverlay не меняет размер плавно

Я добавил MKCircle как MKOverlay в свой MKMapView. Также я добавил UISlider, чтобы определить радиус круга. К сожалению, при использовании это кажется немного «медленным», а не плавным, как я бы хотел.

Пример: К сожалению, при использовании это кажется немного "медленным", а не плавным, как я бы хотел ...

Я добавил MKCircle как MKOverlay в свой MKMapView. Также я добавил UISlider, чтобы определить радиус круга. К сожалению, при использовании это кажется немного "медленным", а не плавным, как я бы хотел.

Пример: К сожалению, при использовании это кажется немного "запаздывающим", а не плавным, как я бы хотел ...

Я добавил MKCircle как MKOverlay в свой MKMapView. Также я добавил UISlider, чтобы определить радиус круга. К сожалению, при использовании это кажется немного "медленным", а не плавным, как я бы хотел.

Пример: http://dl.dropbox.com/u/3077127/mkoverlayDelay.mov

Это мой код:

- (void)addCircle
{
    // draw the radius circle for the marker
    double radius = 2000.0;
    MKCircle *circle = [MKCircle circleWithCenterCoordinate:location radius:radius];
    [circle setTitle:@"background"];
    [mapView addOverlay:circle];

    MKCircle *circleLine = [MKCircle circleWithCenterCoordinate:location radius:radius];
    [circleLine setTitle:@"line"];
    [mapView addOverlay:circleLine];
}

- (void)addCircleWithRadius:(double)radius
{
    MKCircle *circle = [MKCircle circleWithCenterCoordinate:location radius:radius];
    [circle setTitle:@"background"];
    [mapView addOverlay:circle];

    MKCircle *circleLine = [MKCircle circleWithCenterCoordinate:location radius:radius];
    [circleLine setTitle:@"line"];
    [mapView addOverlay:circleLine];
}

- (void)sliderChanged:(UISlider*)sender
{
    [mapView removeOverlays:[mapView overlays]];

    double radius = (sender.value * 100);

    [self addCircleWithRadius:radius];
}

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id )overlay{
    MKCircle *circle = overlay;
    MKCircleView *circleView = [[[MKCircleView alloc] initWithCircle:overlay] autorelease];

    if ([circle.title isEqualToString:@"background"])
    {
        circleView.fillColor = UIColorFromRGB(0x598DD3);
        circleView.alpha = 0.25;
    }
    else
    {
        circleView.strokeColor = UIColorFromRGB(0x5C8AC7);
        circleView.lineWidth = 2.0;
    }

    return circleView;
}

Есть ли у кого-нибудь предложения, как я могу это сгладить?

С уважением,
Пол Пилен

22
задан Paul Peelen 3 February 2011 в 14:53
поделиться