2012-01-26 11 views
1

Xcode内で階層化がどのように実行されているか理解できません。私はビューを持つ.xibを持っています。ビューには、それぞれが異なるイメージを含む6 UIImageViewがあります。私はそれぞれのためにIBOutletsを作成したので、私は実行時にイメージを変更することができます。UIImageViewレイヤーオーダー

UIImageViewsが実行時に描画される順序を変更したいので、背面のimageAが他のすべての上に描画されるようになりました。レイヤの順序を変更するにはどうすればよいですか?私はもともと、すべてのサブビューを削除し、[self.view insertSubview: atIndex: ]を使って描画の順序を変更することができるかどうかを確認しましたが、コードがクラッシュしました。

これを行う正しい方法を教えてもらえますか?あなたが親から画像を削除すると、その保持カウントがゼロになり、割り当て解除されているため、高度で

おかげで、 エリオット

答えて

3

は、私はあなたがこれらのUIView方法を探していると思います。

- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2 
: bringSubviewToFront:それはその兄弟の一番上に表示されるように指定されたサブビューを移動 。

- (void)bringSubviewToFront:(UIView *)view 

3を: sendSubviewToBack:それはその兄弟の後ろに表示されるように指定されたサブビューを移動 。これらの方法

- (void)sendSubviewToBack:(UIView *)view 

あなたは1のUIViewを取得するために、サブビューの順序を交換することができ、そのスーパービュー内の他の1の上に表示されます...それはあなたが

+0

ありがとうございました!私は明日、私が探しているもののように見えるこれらのメソッドを見ていきます。 –

+0

ニース。私は持参/送付のペアを探したことはありません。私はそれを手作業で行わなければならないと考えました。 – smparkes

+0

それは魅力のように働いた '! –

1

クラッシュであってもよいです。

2つのビューを交換したい場合は- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2UIView)を参照してください。より複雑な交換をしたい場合は、削除してreaddできます。削除するビューを保持していることを確認してください(ARCにもかかわらず)。 : exchangeSubviewAtIndex:withSubviewAtIndex:指定されたインデックスで 交流サブビュー

+0

....求めていたものだ場合はそう私はあなたが感じていますそれはクラッシュを引き起こしているので、私は必要なものを行うべきであるように、交換方法を試してみます。 –