在滚动视图中绘制路径性能

时间:2011-12-22 11:57:44

标签: iphone ios ipad quartz-graphics draw

我在UIScrollView内有CATiledLayer(mapView)的视图。

可以缩放和滚动地图。

viewForZoomingInScrollView的{​​{1}}方法返回mapView。在该视图的顶部(在UIScrollViewDelegate内)我有另一个视图(overlayView),我需要绘制路径数(UIScrollView,最多40个)。但在这种情况下的表现非常糟糕。我怎样才能改进它?在滚动视图上绘制的正确方法是什么?

我已经尝试过做的事情:

  1. 我尝试在CGPathdrawRect:方法中渲染视图的上下文(在这种情况下,我需要保持drawLayer:inContext:的常量大小,否则在缩放时会崩溃太大了 - 但这意味着每次用户滚动或缩放时我都需要重绘。在这种情况下,即使我绘制所有路径的时间大约为0.02秒,应用程序仍然很慢。
  2. 尝试将overlayView作为overlayView,但在这种情况下,原始mapView变得非常慢。只有在加载了mapView的所有图块后才会加载overlayView图块。看起来CATiledLayer的所有实例都使用相同的线程进行渲染或以某种方式相互阻塞。
  3. 尝试使用CATiledLayers在单独的视图中绘制每个路径。非常慢,我认为这是因为视图绘制的开销很大。

0 个答案:

没有答案