web-dev-qa-db-ja.com

SwiftでUIView要素を逆方向に送信する方法

ですから、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)

}
17
Nick89

Appleドキュメント から:

bringSubviewToFront(_:)
sendSubviewToBack(_:)
removeFromSuperview()
insertSubview(_:atIndex:)
insertSubview(_:aboveSubview:)
insertSubview(_:belowSubview:)
exchangeSubviewAtIndex(_:withSubviewAtIndex:)

次の方法でバーを前面に出すことができます。

view.bringSubviewToFront(nextBar) 

以下を使用して、ビューをバーの後ろに送信します。

nextBar.view.sendSubviewToBack(myView)
35
Icaro

Swift 4の場合:

self.view.sendSubview(toBack: myView)
3
xhinoda

Swift 4.2では、次のように実行できます。

self.sendSubviewToBack(view: viewSentToBack)

上記の関数を使用して、IBOutletによってリンクされているビュー内のオブジェクトを送り返すことができます。

0
Zog