【发布时间】:2019-06-05 14:47:36
【问题描述】:
我在 GMSMapView 中添加了 8 个标记
标记具有从 UIImage 和 UILabel 构建的简单自定义视图
标签应每 10 秒更改一次文本
问题是每次需要更改文本时,UI 都会出现一点延迟(滚动表格视图时最明显)
我这样做的方式是在一个循环中:
为了停止渲染并让 cpu 休息:
marker.tracksViewChanges = false
等待 10 秒...
为了使文本更改生效:
marker.tracksViewChanges = true
marker.custoView.label.text = "一些新文本"
继续循环
有没有办法在 UI 中不出现滞后问题?
【问题讨论】:
-
我想设置标签是没有问题的。但 UIImage 可能是。您是否尝试在
DispatchQueue.main.async { ... }内运行它? -
如果我删除图像也会发生这种情况。它猜测问题是因为整个视图在地图上再次重绘。问题是它只有 8 个标记......所以很奇怪
-
github.com/react-native-community/react-native-maps/issues/2082 - 它用于反应原生,但似乎 trackViewChanges 是罪魁祸首。查找问题,我发现了几个与问题有关的线程。这个看起来很可靠stackoverflow.com/a/49922839/4284508。
-
这正是我正在做的。当需要更改文本时,我将此属性设置为 true,更改文本,然后立即将此属性设置为 false。我没有他们谈论的 cpu 问题,因为大多数时候属性设置为 false,除了需要更改文本的那一刻
标签: swift gmsmapview