Я попробовал ваш код и нашел очень простой способ сделать его более плавным.
При изменении порядка звонков: - (void)sliderChanged:(UISlider*)sender
Вы можете позвонить [self addCircleWithRadius:radius];
перед звонком [mapView removeOverlays:[mapView overlays]];
Просто убедитесь, что вы не удаляете только что добавленные наложения, только старые.
Это даст вам более плавное изменение размера, особенно когда новый круг меньше старого.
Для кругов большего размера вам, вероятно, лучше использовать NSOperations
, чтобы обеспечить более быстрое создание видов.
Надеюсь, это поможет.