有一个应用程序在MKMapView
. 在 iOS 6 和 Apple Maps 之前,这就像一个魅力......
iOS 6 / Apple Maps 的问题是性能很糟糕,导致在平移/缩放地图时 3d 对象会四处跳动。我猜这个问题是由于MKMapView
现在使用 OpenGL 来渲染地图,但我不知道如何让它工作......
iOS 5 / Google Maps 版本使用常规CADisplayLink
进行渲染,但事实证明,Apple Maps 非常滞后。
然后我尝试将渲染移动到 aMKOverlay
并从那里调用我的“draw frame”,这稍微提高了性能,但与 iOS 5 / Google Maps 版本相比仍然很糟糕。
我最终在地图上添加了一个平移/捏合手势识别器,MKMapView
并在每次平移/捏合地图时手动调用“画框”。这比覆盖略好一点,但距离 iOS 5 / Google 地图的性能还有很长的路要走。
然而,让应用程序在装有 iOS 5 的 iPhone 4S 上以 45-50 fps 的速度运行,而在装有 iOS 6 的 iPhone 5 上以 15-20 fps 的速度运行相同的应用程序,这是非常令人沮丧的......
我试过在后台线程、高优先级线程、低优先级线程上进行渲染、延迟它、异步调用它,我只是无法接近 iOS 5 的性能:(
任何想法或建议如何愉快地将MKMapView
iOS 6 中的 OpenGL 渲染与自定义 OpenGL 渲染调用结合起来?