我正在尝试展示很多MKCircles使用 MapKit 的内容。到目前为止,我已经扩展MKCircle <MKOverlay>了一个名为 Circle 的类。我有一个名为 circleView 的只读属性。在吸气剂中,我构造了MKCircleView.
-(MKCircleView *)circleView {
    if(!_circleView){
        _circleView = [[MKCircleView alloc] initWithOverlay:self];
        [_circleView setFillColor:self.color];
    }
    return _circleView;
}
然后,在地图中,我这样做:
- (MKOverlayView *)mapView:(MKMapView *)mapView 
            viewForOverlay:(id<MKOverlay>)overlay {
   if ([overlay isKindOfClass:Circle.class]) {
       Circle *region = overlay;
       return [region circleView];
    }
    return nil;
}
我正在从服务器加载这些圈子,但是我可以有几个圈子(在一个区域中显示超过 1k)。
我觉得 UI 反应不够灵敏。即使从服务器缓存中的圆圈,重新绘制它们也需要一段时间,并且在该区域中移动可能会很痛苦。有什么办法可以提高这种性能吗?
编辑
我发现我正在显示更多必要的圆圈,但它仍然很慢。