Как отправить элемент 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, может быть отправлен обратно с помощью вышеуказанной функции.