我在其中一页上进行了以下设置:
当前页面显示带有Google Maps的mapView,我假装将UIView显示在mapView的顶部...我尝试了任何操作,但mapView始终显示在UIView的顶部。我该如何解决?
这是我的页面代码:
import UIKit
import CoreLocation
import GoogleMaps
import GooglePlaces
class GoogleMapPage: UIViewController, CLLocationManagerDelegate{
var placesClient: GMSPlacesClient!
var addressName: String? = nil
lazy var geocoder = CLGeocoder()
var latitude: Double = 0.0
var longitude: Double = 0.0
@IBOutlet weak var mapView: GMSMapView!
@IBOutlet weak var cameraButton: UIButton!
@IBOutlet weak var menuButton: UIButton!
@IBOutlet weak var sideMenu: UIView!
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestLocation()
placesClient = GMSPlacesClient.shared()
mapView.bringSubviewToFront(cameraButton)
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]){
if let location = locations.first {
createMap(location.coordinate.longitude, location.coordinate.latitude)
self.longitude = location.coordinate.longitude
self.latitude = location.coordinate.latitude
}
}
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
let alertController = UIAlertController(title: "Location Error", message: error.localizedDescription, preferredStyle: .alert)
let okayAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
alertController.addAction(okayAction)
self.present(alertController, animated: true, completion: nil)
}
func createMap(_ longitude: Double, _ latitude: Double){
let position = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
let marker = GMSMarker(position: position)
let camera = GMSCameraPosition.camera(withLatitude: latitude, longitude: longitude, zoom: 12.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
marker.map = mapView
marker.title = "Your Position"
mapView.addSubview(cameraButton)
mapView.addSubview(menuButton)
view = mapView
let location = CLLocation(latitude: latitude, longitude: longitude)
// Geocode Location
geocoder.reverseGeocodeLocation(location) { (placemarks, error) in
// Process Response
print(placemarks as Any)
}
}
}
答案 0 :(得分:0)
您正在MapView内添加MenuView和按钮,而不是在地图视图的顶部。 MenuView是Mapview的子视图,这就是为什么它不显示