InterfaceBuilderから作成されたフロント/バック要素にプログラムで送信します


84

インターフェイスビルダーでは、レイアウトオプションは、バックアップまたはフロントになどの任意の要素を送信するために送信することがあるUIButtonUIImageUILabel等...

さて、プログラムで実行時に同じことをしたいと思います。

それを行う簡単な方法はありますか?

別のビューを作成したくないので、z軸を更新するだけです。

回答:


192

UIViewビュー階層を変更できるようにする方法はいくつかあります。

ビューはすでにスーパービューに挿入されているため、ビューbringSubviewToFront:ごとに好きな順序で簡単に1回呼び出すことができます。


UIButtonをフロント/バックに直接送信できないと言っていますか?ビューを作成して、そのビューに追加する必要があります。次に、上記の方法を使用しますか?もしそうなら、コントローラークラスはそのようなビューを作成する場所ですか?
Yohann T.

11
UIButtonは、UIViewのサブクラスです。呼び出すだけです:[[myButton superview] bringSubviewToFront:myButton];
セバスチャンセリス

私が持っていた小さな疑問をクリアするために:すでにビュー階層にあるサブビューを挿入すると、OSはその位置を移動するだけです。したがって、ビューが存在する限り挿入しても、オーバーヘッドは発生しません。
olivaresF 2011

bringSubviewToFront:ビューごとに好きな順序で1回呼び出す」というのは、本当にトリックです。良いもの。
回答2015

43

あなたが使用することができます:

[self.view bringSubviewToFront:myButton];
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.