Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c mapkit使用破折号图案绘制多段线会导致地图上不断闪烁_Objective C_Ios_Mapkit - Fatal编程技术网

Objective c mapkit使用破折号图案绘制多段线会导致地图上不断闪烁

Objective c mapkit使用破折号图案绘制多段线会导致地图上不断闪烁,objective-c,ios,mapkit,Objective C,Ios,Mapkit,我已经创建了要显示在mapkit地图上的多段线集。当我设置lineDashPattern,然后查看地图时,所有线(无论是实线还是虚线)都会不断闪烁。一旦我将线条样式设置回实体,问题就会消失。 对问题的看法或我可以测试/检查的内容? 一些片段: - (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context { ..

我已经创建了要显示在mapkit地图上的多段线集。当我设置lineDashPattern,然后查看地图时,所有线(无论是实线还是虚线)都会不断闪烁。一旦我将线条样式设置回实体,问题就会消失。 对问题的看法或我可以测试/检查的内容? 一些片段:

- (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];
.......
}

目前,我发现这种“闪烁”现象是由于在设置LineDasPattern时,drawMapRect在infinte循环中运行。我仍然不完全确定为什么将样式应用到MKOverlayPathView中的路径会导致问题,我认为这是某个地方的内存泄漏。尽管如此,我的解决方案是在事后将样式应用于覆盖视图。 e、 g


仍然不能完全确定为什么将样式应用于MKOverlayPathView中的路径会导致这些问题,我认为这是内存泄漏的原因。尽管如此,我的解决方案是在事后将样式应用于覆盖视图。 e、 g

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];