View перекрывает другой View


#1

Здравствуйте. Возник довольно глупый, но весьма важный для меня вопрос. Работаю с Google Maps, и получилась такая ситуация, что при отображении карты, все элементы которые были расположены на ViewController уходят за карту. mainView является superView, а menuView – subview. Не нашла ни одного способа поместить subview поверх superView. Буду благодарна любому ответу, спасибо!



#2

Это должно выглядеть так

-View //супервью
–MapView //сабвью вью
–Меню //сабвью вью, наложено поверх MapView


#3

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#4

Сразу после mainView.addSubview(mapView):

mainView.bringSubview(toFront: menuView)

Или:

mainView.sendSubview(toBack: mapView)

Или вместо mainView.addSubview(mapView):

mainView.insertSubview(mapView, at: 0)

#5

Спасибо всем большое за ответы! :blush:


#6

Пробовала Ваши варианты и ничего, возможно, что я что-то не так поняла, подскажите, пожалуйста

   func GoogleMaps () {
    
    // Create the maps
    let camera = GMSCameraPosition.camera(withLatitude: 47.213371, longitude: 39.712053, zoom: 15.0)
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    view = mapView
    mainView.addSubview(mapView)
    mainView.bringSubview(toFront: menuView)
    
    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: 47.213371, longitude: 39.712053)
    marker.title = "Набережная реки Дон"
    marker.map = mapView
    
}

#7

Зачем это здесь?

View в контроллере это и есть mainView, попробуйте так:

func GoogleMaps () {
    
    // Create the maps
    let camera = GMSCameraPosition.camera(withLatitude: 47.213371, longitude: 39.712053, zoom: 15.0)
    let mapView = GMSMapView.map(withFrame: view.frame, camera: camera)
    
    view.insertSubview(mapView, at: 0)
    
    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: 47.213371, longitude: 39.712053)
    marker.title = "Набережная реки Дон"
    marker.map = mapView
    
}

#8

Помогло! Очень Вам благодарна!