UIViewの表示順(z-order とか z-index とか言われるヤツ)を入れ替える方法です。
表示順を変えるだけでしたら
#import “QuartzCore/QuartzCore.h” subview1.layer.zPosition = 2; subview2.layer.zPosition = 1;
のようにlayerのzPositionを入れ替えればOKです。
ただし、このzPositionは初期値で0ですので最初から表示順を指定していた場合には有効ですが、
後から変更する場合にはちょっと都合が悪い。
ですので、そういった場合にはsuperviewに追加されているsubviewのindexを直接変更した方が楽チンです。
で、どうするのかと言うと。
まず、入れ替えたいsubviewのindexを取得します。
UIView *superview = subview1.superview; int idx1 = [superview.subviews indexOfObject:subview1]; int idx2 = [superview.subviews indexOfObject:subview2];
その上で入れ替えます。
[superview exchangeSubviewAtIndex: idx1 withSubviewAtIndex: idx2];
これでsubviewの表示順が入れ替わってくれますよ。