2012-01-25 35 views
0

我創建了各種要在mapkit地圖上顯示的多段折線。當我設置lineDashPattern然後查看地圖時,所有線條(無論是實線還是虛線)都會持續閃爍。一旦我將線條樣式重新設置爲固定,問題就消失了。 對這個問題的想法或我可以測試/檢查什麼? 一些片段:mapkit使用短劃線模式繪製折線導致地圖上的不斷閃爍

- (void)drawMapRect:(MKMapRect)mapRect 
      zoomScale:(MKZoomScale)zoomScale 
      inContext:(CGContextRef)context 
{ 
....... 
NSMutableArray * lineDash = [[NSMutableArray alloc] init]; 
    [lineDash addObject:[NSNumber numberWithInt:20]]; 
....... 
self setStrokeColor:[UIColor redColor]]; 
         [self setLineWidth:2.0]; 
         [self setLineDashPattern:lineDash]; 
....... 
} 

目前我發現這個「閃爍」是由於該drawMapRect在infinte循環運行時,我設置了LineDastPattern。

回答

1

仍然不完全確定爲什麼將樣式應用於MKOverlayPathView中的路徑導致問題,我認爲這是內存泄漏的地方。 Nonetheeless,我的解決方案是在事實之後將樣式應用於overlayView。 例如

MKOverlayPathView* overlayView = nil; 
overlayView = [[[MKOverlayPathView alloc] initWithOverlay:overlay] autorelease]; 
overlayView.strokeColor = [UIColor redColor]; 
overlayView.lineWidth = 2.0; 
overlayView.lineDashPattern = [NSArray arrayWithObjects:[NSNumber numberWithFloat:12],[NSNumber numberWithFloat:8], nil];