MGLMapView не показывает ни один объект, добавленный в контроллер представления - PullRequest
0 голосов
/ 02 октября 2018

Я правильно настроил Viewcontroller, содержащий UIView с классом "MGLMapView", что я пытаюсь добавить кнопку в Viewcontroller, но при запуске приложения кнопка не отображается.

То же самое, если я выполняю внешний Viewcontroller и накладываю MapViewController, он запускается, но не отображается.

Почему это так?у кого-нибудь была подобная проблема?и как мне это решить?

Заранее спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

Я не знаю о 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),
        ])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...