2012-02-14 7 views
12

を変更:IOSは、私はタブでいくつかのメニューをするつもり</p> <p>をサブビューインデックスランタイム

insertSubview:(UIViewの*) atIndex:(NSInteger)

し、それらの上のボタンを押すことによって、私は、実行時にサブビューのインデックスを変更することができますどのようにトップ

に示したタブを、変更したいですか?

ありがとうございました!新しいインデックスにスーパー

2.Insertから

答えて

44

sendSubviewToBack:bringSubviewToFront:は、あなたが探している方法があります。別の可能性はexchangeSubviewAtIndex:withSubviewAtIndex:で、2つのビューのレイヤーを交換したい場合です。簡単にコピーペースト用

+0

正しい解決方法のメイト。 – Resty

15

1.Remove

[subview removeFromSuperview]; 
[containerView insertSubview:subview atIndex:newIndex]; 
+21

あなたが実際に '呼び出す必要はありません[サブビューremoveFromSuperview];'。サブビューにサブビューがある場合、 'insertSubview:atIndex:'、 'insertSubview:aboveSubview:'、 'insertSubview:belowSubview:'コールはすべて自動的に既存のスーパービューを削除します。 「ビューにはスーパービューが1つしかありません。ビューにはすでにスーパービューがあり、そのビューがレシーバではない場合、このメソッドは受信者を新しいスーパービューにする前に以前のスーパービューを削除します。 –

+0

もちろん、あなたは正しい! – cweinberger

3

スウィフトのバージョン:

insertSubview(myView1, belowSubview: myView2) 

insertSubview(myView2, aboveSubview: myView1) 

insertSubview(view: myView1, atIndex: 1) 
関連する問題