如何显示以下UIView?

问题描述 投票:0回答:1

我在其中一个页面上进行了以下设置:

https://imgur.com/a/Lzfnmm0

当前页面显示带有谷歌地图的mapView,我假装在地图视图顶部显示UIView ...我已尝试过任何东西,但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)
        }

    }
}
ios swift xcode uiview gmsmapview
1个回答
0
投票

您正在MapView中添加MenuView和按钮,而不是在地图视图中添加顶部。 MenuView是Mapview的子视图,这就是它没有显示的原因

© www.soinside.com 2019 - 2024. All rights reserved.