gpt4 book ai didi

ios - 添加和删​​除标记时重新加载 Google map View

转载 作者:行者123 更新时间:2023-11-28 05:50:44 24 4
gpt4 key购买 nike

我们正在用 Swift 编写代码来创建一个带有 UI 按钮的应用程序。这些 UI 按钮将根据其状态添加或删除标记。因为我们希望按钮位于谷歌地图之上,所以我们有两个 View Controller 。顶 View Controller 包含一个按钮。按下按钮时,我们要删除状态为“坏”的标记。

这是我们删除标记的代码:

func showOnlyGood(){
mapView.clear() //this is the google map (GMSMapView.map)
for x in arrayOfGood { //Array of good markers
x.map = mapView //Set good markers to show
}
for y in arrayOfBad { //Array of bad markers
y.map = nil //removes markers from map
}
}

如果函数调用在 viewDidLoad() 中,谷歌地图会更新,但是当我们使用按钮在顶 View Controller 中调用该函数时,它不会相应地更新 map 。

我们认为这是刷新谷歌地图 View 的问题,并尝试了许多不同的解决方案,但谷歌地图 View 仅显示最初在 viewDidLoad() 中的内容。

最佳答案

首先,如果您只想将按钮分层放置在 map 之上,只需在将 map 添加到 View 后将按钮添加到 View 即可;不要创建第二个 View Controller 。您的问题很可能是由这种笨拙的设置引起的。您的操作方法中也没有 @objc 前缀,这肯定会阻止按钮执行其操作。

@objc func updateButtons() {
mapView.clear() // clear the map
for i in someArray {
let marker = GMSMarker()
// configure parameters
marker.map = mapView
}
}

该方法将更新 map 的标记。 [可能] 永远不需要刷新 map ,即使您想更改样式也是如此。

关于ios - 添加和删​​除标记时重新加载 Google map View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53056499/

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