2015年2月12日木曜日

UI部品の重なる順番を変更する

viewにコード内からaddSubviewすると、新しいUI部品が最前面に配置される。
しかしStoryboardなどで配置したボタンなどは、常に最前面に出ていてほしいもの。

以下のようにすれば、UI部品の重なりを最前面および最背面に変更することができる。
[self.view bringSubviewToFront:_button1];
[self.view sendSubviewToBack:_button1];

それぞれbring〜、send〜と違うので注意。

また、UI部品に対してのメソッドに
[_button1 exchangeSubviewAtIndex:1 withSubviewAtIndex:3];

があり、これも順番を何番目から何番目に変更するというものだが、部品の重なる順番を把握しておく必要があるので、柔軟性は低い。

一番柔軟性のありそうな、「順番を一個前に」、「一個後に」…というメソッドはないようだ。

指定できるのはUIViewのサブクラスなので、ImageViewとかLabelとかほとんどのUI部品が対応している。

0 件のコメント:

コメントを投稿