我正在尝试展示很多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 反应不够灵敏。即使从服务器缓存中的圆圈,重新绘制它们也需要一段时间,并且在该区域中移动可能会很痛苦。有什么办法可以提高这种性能吗?
编辑
我发现我正在显示更多必要的圆圈,但它仍然很慢。