Ocultar y Mostrar un Botón mientras localización se muestra


#1

En un Mapa, tengo que ocultar un botón mientras mi localización se muestra en el view, de lo contrario si el usuario mueve el mapa y la localización del dispositivo no se ve, este botón se tiene que mostrar, ya que es el de “ir a mi localizacion”, alguien ha hecho algo así?,


#2
 Puedes poner un contador para hacer una espera o ver cuando location sea diferente a Nil 

var  counter = 0
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
            if counter < 4{
                if let location = self.manager.location{
                    tuboton.isHidden = true
                    counter += 1
                }
                
            }else{
                 tuboton.isHidden = false
                self.manager.stopUpdatingLocation()
            }
        }

#3

Gracias @vicktorManuel, lo voy a intentar como lo mencionas, muy amable en responder a mi pregunta saludos!!!


#4

Me pasaron un método que puede ser de ayuda a los demás…
en el delegate de GMSCameraPosition y usando el método de idAt position hagan lo siguiente:

func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition)  {
         guard let location2D = myLocation else { return  }
        myLocationButton.isHidden = self!.isBlueDotWithinBounds(position: location2D.coordinate) ? true : false
}

func isBlueDotWithinBounds(position:CLLocationCoordinate2D) -> Bool {
    let region = mapView.projection.visibleRegion()
    let bounds = GMSCoordinateBounds(region: region)
    return bounds.contains(position)
}