Я не знаю о MGLMapView
, но он должен придерживаться тех же правил, что и любой другой UIView
объект.
Этот пример основан на MKMapView
, но он должен быть аналогом для MGMapView
.Поместите этот код в свой VC и добавьте setUpViews()
к вашему viewDidLoad()
методу.
Примечание: этот код должен поместить MKMapView
внизу стека представлений, а представление карты должно занимать весь вид (кроме верхних 64 пунктов - я предположил, что UINavigationView
может быть виспользуйте - если не просто измените 64.0 на 0.0 в ограничениях).Затем он добавляет UIButton
поверх MKMapView
с центром в направлении x с шириной 150, высотой 40 и 20 от нижней части вида.
let map: MKMapView = {
let view = MKMapView()
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
let button: UIButton = {
let view = UIButton()
// Add or change attributes as you need
view.backgroundColor = UIColor.green
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
fileprivate func setUpViews(){
// Add the map first
self.view.addSubview(map)
// Add the button now it will be on top of the map view
self.view.addSubview(button)
map.delegate = self;
NSLayoutConstraint.activate([
map.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 64.0),
map.bottomAnchor.constraint(equalTo: self.view.bottomAnchor),
map.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
map.trailingAnchor.constraint(equalTo: self.view.trailingAnchor)
])
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: self.view.centerXAnchor, constant: 0.0),
button.heightAnchor.constraint(equalToConstant: 40.0),
button.widthAnchor.constraint(equalToConstant: 150.0),
button.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -20.0),
])
}