gpt4 book ai didi

objective-c - mapkit 绘制带有破折号图案的折线会导致 map 上不断闪烁

转载 作者:行者123 更新时间:2023-11-29 13:41:31 26 4
gpt4 key购买 nike

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

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

目前我发现这种“闪烁”是由于设置 LineDastPattern 时 drawMapRect 在无限循环中运行造成的。

最佳答案

仍然不完全确定为什么将样式应用于 MKOverlayPathView 中的路径会导致问题,我认为这是某处的内存泄漏。尽管如此,我的解决方案是事后将样式应用于 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];

关于objective-c - mapkit 绘制带有破折号图案的折线会导致 map 上不断闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com