Как вывести UIButton на передний план Mapbox - PullRequest
0 голосов
/ 23 ноября 2018

Я использую Mapbox SDK (SWIFT) и создал свою собственную карту.Я добавил кнопку и изображение на карту в раскадровке, но когда я запускаю приложение, кажется, что оно скрыто позади.Я попробовал все, включая view.bringSubview(toFront:UIimage), и я не могу использовать эту функцию с UIButton.Я даже пытался отправить карту в backView, но она портит мою пользовательскую карту и все еще не видит мое изображение или кнопку.Пожалуйста помоги!Спасибо.

Ответы [ 4 ]

0 голосов
/ 26 марта 2019

Я не мог изменить свою иерархию представлений для своего просмотра карты, поэтому я выбрал другой подход.

У меня было создано отображение моей карты в моей функции viewDidLoad с помощью let mapView = MGLMapView(...), затем мое отображение карты стало видимым с помощьюкод view.addSubview(mapView).Мне нужно было сделать мою кнопку видимой аналогично.

Сначала я вставил IBOutlet в свой класс ViewController

@IBOutlet weak var MyButton: UIButton!

, который ссылался на кнопку, которую я поместил над моим mapView в раскадровке.Затем я добавил свою кнопку в представление, добавив

view.addSubview(MyButton)

Сразу после добавления моего mapView.

0 голосов
/ 23 ноября 2018

Вы также можете управлять видимостью подпредставлений с помощью:

mapview.layer.zPosition = 1
button.layer.zPosition = 2
image.layer.zPosition = 2

Вы можете нажать на отладочный навигатор -> Просмотр иерархии пользовательского интерфейса, чтобы визуально понять, как просматриваются слои.

debug navigator

0 голосов
/ 23 ноября 2018

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

enter image description here

Вот мой вывод

enter image description here

или, если у вас есть вид изнутри кнопки, вы можете установить его на фронт как

Self.view.bringSubviewToFront (кнопка) или button.superview? .BringSubviewToFront (button)

Убедитесь, что ваша кнопка не скрыта в раскадровке, а когда ваше приложение запущено, захватите пользовательский интерфейс и проверьте слои своего раскадровки.

0 голосов
/ 23 ноября 2018

Вам нужно вывести его на верхнюю часть обзора

Self.mapview.bringSubview(button)
...