【发布时间】:2012-10-16 16:52:29
【问题描述】:
更新到 iOS 6 后,我注意到在平移或缩放具有多个叠加层的 MKMapView 时服务器性能下降。我创建的一个应用程序有大约 600 个各种颜色的多边形叠加层,并且在 iOS 5 上运行无延迟(即使在较旧的 iOS 设备上),现在在 iOS 6 上运行非常滞后(缩放和平移时),即使在最新的设备上也是如此。
我的直觉是,这是因为设备必须实际动态地创建地图(因为它基于矢量),而不仅仅是在屏幕上显示图块。
有没有人有任何想法来减少平移或缩放地图时的延迟?
一些额外的信息,这种低帧率也会发生在缩放或平移覆盖层根本不显示在屏幕上的区域时,因此它与屏幕上出现的覆盖层的创建无关。
【问题讨论】:
-
您是否分析了仪器的性能问题?
-
我如何最好地测试它?我应该使用什么仪器?
-
使用时间分析器(如果问题是 cpu 绑定的) - 它会告诉你代码中花费的时间最多的地方
-
你能分享你的绘图代码吗? Mapkit 调用 drawMapRect: 方法并传递一个 mapRect。此 mapRect 可能包含也可能不包含您的叠加层。你的工作是只绘制与drawrect重叠的覆盖部分。网络上的很多代码都会为每个 drawrect 绘制整个叠加层。
标签: ios mkmapview ios6 mapkit mkoverlay