jjzjj

setNeedsDisplayInMapRect

全部标签

ios - MKTileOverlay:如何重新加载特定的图 block 或区域

我正在开发一个基于map的应用程序。我使用了MKTileOverlay来显示一些动态内容。当新信息到达时,有时某些图block需要重新加载。我尝试在主线程中调用overlayRenderer.setNeedsDisplayInMapRect(mapRect)但显然在我的情况下它不会触发map重绘。到目前为止,唯一可行的方法是overlayRenderer.reloadData()。但是,这将导致重新加载整个内容(而不是仅特定区域)并导致View闪烁,所以这对我来说不是一个选项。任何人都可以对此提出任何建议吗?谢谢和干杯。 最佳答案

ios - setNeedsDisplayInMapRect 不触发新的 drawMapRect : call

我正在使用自定义MKOverlay/MKOverlayView用我自己的异步加载的图block完全覆盖Googlebasemap。当我收到对覆盖View的canDrawMapRect:zoomScale:调用(并在这种情况下返回FALSE)时,我遵循请求卸载图block的模式,然后调用setNeedsDisplayInMapRect:zoomScale:一旦瓷砖可用。这一切通常都有效,并且在模拟器中似乎完美运行。但是,在设备上,我有时会在叠加层中看到一个“洞”——缺失的图block。我可以看到该图block已被请求,并且请求已完成。我可以看到我调用了setNeedsDisplayInM