gpt4 book ai didi

iphone - 排除 mapkit 性能故障

转载 作者:太空狗 更新时间:2023-10-30 03:31:48 26 4
gpt4 key购买 nike

我正在使用 mapkit 在 map 上绘制 500 多个点。与本地谷歌地图应用程序相比,缩放有点紧张。我发现了导致速度缓慢的原因。我正在添加自定义注释,以便稍后可以为详细 View 添加不同的图钉颜色和按钮:

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(AddressNote *) annotation {
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentlocation"];
annView.pinColor = MKPinAnnotationColorGreen;
annView.animatesDrop=TRUE;
annView.canShowCallout = YES;
annView.calloutOffset = CGPointMake(-5, 5);
return annView;
}

如果我注释掉上面的代码,一切正常。放大/缩小非常流畅。我是否应该以不同方式添加注释以提高性能?

最佳答案

500 个注释可能太多了,但不会多到您只查看其中一些时性能会受到影响。但是,您应该对注释使用出队以提高性能

- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)annotation
{
MKPinAnnotationView *view = nil;
if (annotation != mapView.userLocation) {
view = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"identifier"];
if (nil == view) {
view = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"identifier"] autorelease];
}
[view setPinColor:MKPinAnnotationColorGreen];
[view setCanShowCallout:YES];
[view setAnimatesDrop:NO];
}
else {
// Do something with the user location view
}
return view;
}

此外,对于 500 个图钉,放置动画需要很长时间才能完成。您应该使用 [view setAnimatesDrop:NO]

关闭它

关于iphone - 排除 mapkit 性能故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2219216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com