菜鸟教程小白 发表于 2022-12-11 19:53:23

ios - GMSMarker 信息窗口内容(片段)未更新


                                            <p><p>我有一个数组,其中每个元素都有 <code>Latitude</code> <code>Longitude</code> 和其他一些值,用于在 map 上绘制标记。我正在使用以下代码来更新 <code>GMSMarker</code> 的片段、位置和图标。我正在使用 <code>UISlider</code> 来遍历数组。当我这样做时,标记的图标和位置会更新,而标记的 <code>InfoWindow</code> 不会更新。它仅显示旧内容。但是当我现在取消选择并再次选择它时,它会显示正确的信息窗口内容。我曾尝试使用 <code>tracksInfoWindowChanges</code>,但它不起作用。</p>

<pre><code> @IBAction func progressChanged(_ sender: UISlider) {

    let iVal = Int(sender.value)

    if iVal &lt; progressList.count {
      let str = progressList
      let arr = str.components(separatedBy: &#34;!&#34;)
      let lat = Double(arr)!
      let lng = Double(arr)!
      let pos = CLLocationCoordinate2DMake(lat, lng)
      let fRotation = Float(arr)
      let rotation = CGFloat(fRotation!)
      let strTime = arr
      let idleFlag = arr
      let strSpeed = arr
      let strName = arr

      proMarker.position = pos
      proMarker.title = strName

      if idleFlag == &#34;Y&#34; {
            proMarker.snippet = strSpeed + &#34;!&#34; + strTime + &#34;!&#34; + &#34;idle&#34;
            proMarker.tracksInfoWindowChanges = true

            let markerImage = UIImage(named: &#34;arrow_red&#34;)
            let rotated = markerImage?.imageRotatedByDegrees(rotation, flip: false)

            proMarker.icon = rotated

      } else {
            proMarker.snippet = strSpeed + &#34;!&#34; + strTime + &#34;!&#34; + &#34;moving&#34;
            proMarker.tracksInfoWindowChanges = true

            let markerImage = UIImage(named: &#34;arrow_green&#34;)
            let rotated = markerImage?.imageRotatedByDegrees(rotation, flip: false)

            proMarker.icon = rotated
      }

      proMarker.groundAnchor = CGPoint(x: 0.5, y: 0.5)

      let dTime = sdf5.date(from: strTime)
      let sTime = sdf6.string(from: dTime!)

      hTime.text = sTime
      hSpeedIdle.text = strSpeed + &#34; km/h&#34;

    }

}
</code></pre>

<p>请帮我解决我的问题。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这不是添加lat_long的正确方法,您应该将marker_obj添加到数组中,因为每个标记都包含所有相关信息,它可以帮助您减少这种类型的代码长度。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - GMSMarker 信息窗口内容(片段)未更新,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44601224/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44601224/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - GMSMarker 信息窗口内容(片段)未更新