Как отправить элемент UIView назад в Swift
Итак, у меня есть кнопка, которую я добавил в main.Storyboard, а также основной фон для представления, а затем в файле viewController.swift, я создал форму прямоугольника UIView, которую я хочу сесть за эту кнопку (в качестве фона для него).
Проблема заключается в том, что когда я добавил прямоугольник UIView, он всегда добавлял его перед кнопкой. Поэтому я исследовал онлайн и нашел код sendSubviewToBack. Я добавил это, но он отправляет его полностью за основной фон UIImage представления.
Есть ли способ, которым я могу просто отправить этот UIView за кнопкой, но перед фоном UIImage?
func nextBarDisplayed() {
let theHeight = self.view.frame.height
nextBar.backgroundColor = UIColor(red: 7/255, green: 152/255, blue: 253/255, alpha: 0.5)
nextBar.frame = CGRect(x: 0, y: theHeight - 50, width: self.view.frame.width, height: 50)
self.view.insertSubview(nextBar, aboveSubview: myBackgroundView)
}
Ответы
Ответ 1
Из документации для Apple:
bringSubviewToFront(_:)
sendSubviewToBack(_:)
removeFromSuperview()
insertSubview(_:atIndex:)
insertSubview(_:aboveSubview:)
insertSubview(_:belowSubview:)
exchangeSubviewAtIndex(_:withSubviewAtIndex:)
Вы можете перенести планку на передний план, используя:
view.bringSubviewToFront(nextBar)
Отправляйте свое представление на задней панели, используя:
nextBar.view.sendSubviewToBack(myView)
Ответ 2
Для Swift 4:
self.view.sendSubview(toBack: myView)
Ответ 3
В Swift 4.2 это можно сделать с помощью:
self.sendSubviewToBack(view: viewSentToBack)
Объект в представлении, который связан IBOutlet, может быть отправлен обратно с помощью вышеуказанной функции.