【Xcode/Swift】重なったViewを最前面、最背面にする方法

この記事では、同じ階層に配置されたViewの重なりの順番を変える方法を紹介したいと思います。

例えば、こんな感じのViewが重なっていて、黄色のViewを一番上に表示させたいという場合です。

やり方は、Storyboardとコードの2パターンあります。

実装方法

Storyboardで行う

やり方は簡単で、黄色のViewを一番上にしたいなら、黄色のViewを一番下に持ってくるだけです。左のメニューで、下の方が上に表示されます。

コードで行う方法

まずは、Viewを紐付けます。

黄色のViewを一番上にしたいなら、以下のようにviewDidLoad()とかに記述します。

self.view.bringSubviewToFront(yellowView)

最背面にしたい場合は、以下のように記述します。

self.view.sendSubviewToBack(yellowView)

なので、もし上記のViewの重なりを逆にしたかったら、以下のように記述します。

self.view.bringSubviewToFront(grayView)
self.view.bringSubviewToFront(yellowView)
self.view.bringSubviewToFront(navyView)
self.view.bringSubviewToFront(blueView)