【问题标题】:iOS Swift GMSMarker doesn't removeiOS Swift GMSMarker 不会删除
【发布时间】:2018-03-04 17:54:13
【问题描述】:

我正在使用谷歌地图,我正在尝试删除标记。

正如指南所说,我正在使用marker.map = nil。但是标记仍然存在..

我不能使用 map.clear() 因为我不想失去一切......

有什么建议吗?

/// Hide all the markers
    func hideMarkers() {
        let events = viewModel.events
        for event in events {
            event.marker?.map = nil
        }
    }

【问题讨论】:

  • 原则上似乎是正确的。请发布更多代码
  • 添加隐藏事件功能
  • googlemapView.clear() 和你的hideMarkers() 有什么区别?标记有地图吗?您在哪里使用标记初始化事件?
  • 不同的是 clear() 也删除了瓦片
  • 那你必须分享更多代码,否则我无能为力。

标签: ios swift google-maps gmsmapview


【解决方案1】:

官方文档https://developers.google.com/maps/documentation/ios-sdk/marker?hl=en

如果您希望在将标记添加到地图后对其进行修改,请确保您持有 GMSMarker 对象。您可以稍后通过更改此对象来修改标记。

let marker = GMSMarker(position: position)
marker.map = mapView
marker.map = nil

所以你有一个对你的标记的引用。我想你没有在做标记。

一种丑陋的方法是调用mapView.clear() 并重新添加所有标记。

【讨论】:

  • 是的,这是真的。但我测试了他所做的并且它有效。所以他的问题还有另一个原因。另外我给他一个选择。你的意思是什么?
  • 这个答案不是答案,因为它与 OP 在他的问题中具有相同的代码,并且 clear() 方法也属于评论区。
  • 我不同意这一点。没有人知道问题代码是否有效。 cmets 来自我,为了更好地了解我发布了这个答案。但是,感谢您的反馈,下次我会三思而后行,我的回答是否具有附加值。如果它很困扰您,请随时给我投反对票。
猜你喜欢
  • 1970-01-01
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
相关资源
最近更新 更多