Я пытаюсь расположить кнопку, но обнаружил проблему с ней.
Когда загружается представление, кнопка отображается, но не в правильном положении, которое находится чуть выше панели вкладок.
self.tabBarController?.tabBar.isHidden = false
loadButton()
Когда представление действительно появилось, метод
override func viewDidAppear(_ animated: Bool) {
if shouldReloadDataOnViewWillAppear {
// your code for reloading data
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2){
self.scaleDownAnimation()
}
shouldReloadDataOnViewWillAppear = false
}
}
///// Затем я вызываю еще несколько функций для настройки карты и маркеров.
Последняя строка Функция устанавливает панель вкладок для скрытия:
self.tabBarController?.tabBar.isHidden = false
, затем я вызываю функцию кнопки загрузки
func loadButton()
{
if self.tabBarController?.tabBar.isHidden == false{
button.setBackgroundImage(UIImage(named:"compass.png"), for: .normal)
button.addTarget(self, action: #selector(btnPressed), for: UIControl.Event.touchUpInside)
self.view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
let widthContraints = NSLayoutConstraint(item: button, attribute: NSLayoutConstraint.Attribute.width, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 40)
let heightContraints = NSLayoutConstraint(item: button, attribute: NSLayoutConstraint.Attribute.height, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 40)
let xContraints = NSLayoutConstraint(item: button, attribute: NSLayoutConstraint.Attribute.bottomMargin, relatedBy: NSLayoutConstraint.Relation.equal, toItem: view, attribute: NSLayoutConstraint.Attribute.bottomMargin, multiplier: 1, constant: -40)
let yContraints = NSLayoutConstraint(item: button, attribute: NSLayoutConstraint.Attribute.trailing, relatedBy: NSLayoutConstraint.Relation.equal, toItem: view, attribute: NSLayoutConstraint.Attribute.trailing, multiplier: 1, constant: -40)
NSLayoutConstraint.activate([heightContraints,widthContraints,xContraints,yContraints])
}
}
Я думаю, проблема в том, что кнопка загружается в правильном положении, но когда панель вкладок загружается не пу sh вверх. Как вы можете видеть ниже, когда вид загружается, кнопка находится под панелью вкладок, а когда я отклоняюсь от вида, она переходит в правильное положение.
![](https://i.stack.imgur.com/MWqed.jpg)
![](https://i.stack.imgur.com/cud7b.jpg)
Надеюсь, это действительно простая задача, которую нужно решить!