gpt4 book ai didi

ios - MapKit iOS rendererForOverlay 刷新失控

转载 作者:行者123 更新时间:2023-11-29 11:39:48 30 4
gpt4 key购买 nike

我在使用 addOverlay 和 rendererForOverlay 时遇到 MKMapView 的 MapKit 问题。正在使用 Xcode 9.1 (9B55) 的设备 (iPhone 7 iOS 11.1.1) 进行测试和调试。覆盖渲染器正在为 map View 中的所有图 block 重复刷新(每秒调用 drawMapRect: 2500 次)。对渲染器的调用忽略了 setNeedsDisplayInMapRect: 中更改的矩形,并且不是由 setNeedsDisplayInMapRect 启动的。即使在 Xcode 报告应用程序使用超过 160% 的 CPU 的情况下完成所有 map 更新后,这种刷新也会一直持续下去。

Xcode Debug Navigator Image Link

MKMapView 代码基于 Apple 示例代码“BreadCrumb”,可从 https://developer.apple.com/library/content/samplecode/Breadcrumb/Introduction/Intro.html 获得。 .此代码没有重大的结构更改。有没有其他人遇到过这种情况或对从哪里开始寻找解决方案有任何建议?

最佳答案

运行 Apple Breadcrumb 样本没有出现同样的问题。将其放回我的项目并添加项目中的更改后,我终于能够将问题隔离到将'self.alpha = 0.5'插入drawMapRect:。无论将 alpha 属性设置为 1.0 还是某个其他值,问题仍然会发生。

- (void)drawMapRect:(MKMapRect)mapRect
zoomScale:(MKZoomScale)zoomScale
inContext:(CGContextRef)context;
{
CrumbPath *crumbs = (CrumbPath *)(self.overlay);
self.alpha = 0.5; // <-------- THE PROBLEM

随着问题的解决,覆盖渲染器调用恢复到每秒 40 到 80 次之间,没有发生没有 map 更新和调用 setNeedsDisplayInMapRect: 的调用。

关于ios - MapKit iOS rendererForOverlay 刷新失控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47255610/

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