- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到一个问题,在 iOS 13.2(可能也来自 iOS 13)中,使用 MKTileOverlay
加载离线 map 瓦片偶尔会无法呈现,使瓦片空白,似乎MKTileOverlay
的子类完全没有问题,因为它在 iOS 12 及以下版本中运行良好。我有 2 个 MKTileOverlay
类(1 个添加网格和 1 个加载 map 图 block 文件,默认 MKTileOverlay
),两者都无法使用默认 加载到那个空白图 block 上>MKTileOverlayRenderer
,其他叠加层似乎没问题。
如果我转到主屏幕并返回应用程序,问题似乎会自行解决,导致磁贴重新加载。这是 iOS MapKit 本身的错误吗?有人对此有临时解决方案吗?谢谢。
添加叠加层的代码:
let overlay = MKTileOverlay(urlTemplate: urlTemplate)
overlay.canReplaceMapContent = true
overlay.maximumZ = 19
mapView.insertOverlay(overlay, at: 0, level: .aboveLabels)
渲染器:
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKTileOverlay {
let renderer = MKTileOverlayRenderer(tileOverlay: overlay as! MKTileOverlay)
return renderer
}
return MKOverlayRenderer()
}
最佳答案
这显然是一个 MapKit 问题/错误。
自 2020 年 12 月 9 日起,我还开了一张反馈单。
这个问题的根源不是很确定。
MapKit 和特别是 MKTileOverlay 总是有/有一些像 PNG 24 位这样的“重”图 block 的问题。当 MKTileOverlay 使用 PNG(重图 block )时,图 block 有时会闪烁并且 map 会不断重新加载,尤其是在宽屏(iPad pro 等)上。
因此,由于 JPEG 图 block 通常比 PNG 更浅,因此 JPEG 可能是一种解决方法。
但是,这个新的 iOS 13.2+ 问题不一样!不渲染随机图 block 。如果您删除并重新添加 MKTileOverlay 或调用 MKTileOverlayRenderer 的 reloadData 方法,将呈现丢失的图 block ,并且它将是其他随机图 block 丢失的。
问题的真正解决方案是打开反馈票:https://feedbackassistant.apple.com
编辑:我刚刚尝试在非常简单的 MKTileOverlay 项目示例中用 85% JPEG 替换我的 8 位 PNG,我已经在我的票证中发送给 Apple。同样的问题...没有改善。
编辑 2:将 NSData 加载到 UIImage 然后使用 UIImageRepresentationJPEG 似乎可以解决问题……丑陋……
- (void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData * _Nullable, NSError * _Nullable))result
{
NSString *tilePath = [self PATHForTilePath:path];
NSData *data = nil;
if (![[NSFileManager defaultManager] fileExistsAtPath:tilePath])
{
NSLog(@"Z%ld/%ld/%ld does not exist!", path.z, path.x, path.y);
}
else
{
NSLog(@"Z%ld/%ld/%ld exist", path.z, path.x, path.y);
UIImage *image = [UIImage imageWithContentsOfFile:tilePath];
data = UIImageJPEGRepresentation(image, 0.8);
// Instead of: data = [NSData dataWithContentsOfFile:tilePath];
if (data == nil)
{
NSLog(@"Error!!! Unable to read an existing file!");
}
}
dispatch_async(dispatch_get_main_queue(), ^{
result(data, nil);
});
}
关于iOS 13.2 MKTileOverlay 偶尔不会渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59525403/
我有 4 个 TextView。它们一开始都是不可见的,我将它们动画到屏幕上(从底部滑入)。我启动一个线程来为每个动画制作动画,每个动画开始时间间隔 200 毫秒。问题是:开始 Activity 后第
我有一个奇怪的问题,我似乎无法解决。 :(我有一个基于 Web 的应用程序,可以发送电子邮件。它通过连接在本地网络上设置的基于 Windows 的 SMTP 服务器来实现。此 SMTP 服务器不需要我
从昨天开始,我一直遇到一些设备收不到推送通知的问题。证书/设备 token 似乎是正确的,因为直到昨天,该设备还可以成功接收推送通知。 在服务器端,没有错误或连接拒绝,而且推送通知似乎每次都发送成功。
我有一个将 Angular 错误记录到数据库的应用程序,并且我偶尔会看到此错误的日志 Error: [$compile:tpload] http://errors.angularjs.org/1.5.
我收到一个 ImportError from azure.storage.blob import BlobServiceClient 但是我意识到当我安装依赖项时会发生错误 pip install a
我已经完成了使用AVAudioPlayer实现的简单音频播放GUI。 播放声音时,我使用UISlider提供播放反馈... 这是奇怪的地方。 我有一个非常偶尔发生的问题-而且大多数情况都不会发生,因此
在我的 XNA 游戏中,我的计算机(2.5 Ghz 双核 Intel Centrino 2)在 Debug模式下有一个大约需要 10 毫秒的操作。它只会每隔几分钟运行一次,它基本上只是整数数学/按位运
我相信我的应用程序编码正确(至少大部分是这样),因为它在大约 98% 的时间里都能正常工作。但是,大约 2% 的时间,我得到的似乎是有效的身份验证 token ,但是当我去发布照片时,我收到以下错误“
我在 apple store 上有一个应用程序,在 iOS6 更新后,我在 MKMapView 中收到了数百份崩溃报告。我无法在我的设备上重现崩溃。它看起来像是 EAGLContext 的问题。我们不
我最近开始使用 Foundation 5(我第一次使用 Foundation),我遇到了一个问题,似乎任何元素都响应了 .click 事件(例如顶部导航栏,单击元素时显示的数据下拉列表)将随机不起作用
花了大约一整天的时间试图解决这个问题,希望有人能帮助我!我是新来的,所以如果这是一个重复的问题,我深表歉意(我做了我的研究,但无法提前找到任何东西)。 我正在为我的咨询公司构建的网站使用浏览器缓存,但
我有一个表格,使用了以下 CSS 和 HTML: .price { position:relative; display:block; text-align:center; }
我们使用 ansible 将多个节点配置为一个集群。这些机器是在自定义 AWS 类似基础设施上创建的实例。 我们在不同的剧本上有大约一百个任务,它们在每个节点上执行。 问题是,我们收到零星的主机无法访
我们偶尔会从用户那里收到崩溃报告(我们使用崩溃报告程序包将崩溃发送到我们的服务器),并出现以下错误: “非法尝试在不同上下文中的对象之间建立关系‘...’” (不同的报表可能有不同的关系,并非所有报表
我是一名优秀的程序员,十分优秀!