2016-04-14 14 views
0

Im Erstellen einer Anwendung, die das Google Maps SDK verwendet. Zu diesem Zweck habe ich die Ansicht (Root-Ansicht) als mapView definiert. Jetzt füge ich eine andere Ansicht hinzu, die ich über der mapView sein möchte, aber wenn ich das in viewDidLoad() mache, passiert es einfach nicht. Ich würde wirklich Hilfe schätzen und sogar eine Erklärung, warum das passiert ... topViewBar ist nur eine UIView, die ich im Storyboard hinzugefügt habe.addSubView() und bringSubViewToFront() in viewDidLoad() funktioniert nicht

class MapViewController: UIViewController { 

@IBOutlet weak var topViewBar: UIView! 



override func viewDidLoad() { 
    super.viewDidLoad() 
//MARK: - put event on map function 

    func putEventOnMAp(latitude: CLLocationDegrees, longitude: CLLocationDegrees, eventInfo: String, map: GMSMapView) { 
     let marker = GMSMarker() 
     marker.position = CLLocationCoordinate2DMake(latitude, longitude) 
     marker.title = eventInfo 
     marker.map = map 


    } 

//MARK: - Initialize map view 
    let camera = GMSCameraPosition.cameraWithLatitude(-33.86, 
                 longitude: 151.20, zoom: 6) 
    let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera) 
    mapView.myLocationEnabled = true 
    self.view = mapView 
    self.view.addSubview(topViewBar) // these two lines is where I try to add the additional view 
    self.view.bringSubviewToFront(topViewBar) 


    let marker = GMSMarker() 
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20) 
    marker.title = "Sydney" 
    marker.snippet = "Australia" 
    marker.map = mapView 

Antwort

0

Du fügst topViewBar als Subview mapView. Ich denke was du machen willst ist einen einfachen Container UIView zu initialisieren um self.view zu setzen. Dann fügen Sie mapView und topViewBar beide als Teilansichten der UIView hinzu.

+0

Hey Dash. Ich habe versucht, das zu tun, aber es gelingt mir nicht, die Karte darzustellen. Ich habe die Karte der Root-Ansicht hinzugefügt, weil das die einzige Möglichkeit ist, eine Karte aus viewDidLoad zu initialisieren. Hast du eine Idee, warum das passiert? –

+0

Soory, fügt die Karte hinzu. Schafft es jedoch nicht, einen Marker zu setzen. Deshalb ging ich mit der Grundansicht. Ich bin mir sicher, dass es eine Möglichkeit gibt, darüber eine Ansicht hinzuzufügen ... denke ich? –