2012-01-26 99 views
1

我無法理解Xcode中如何執行分層。我有一個.xib的視圖,該視圖有6 UIImageView的每個包含不同的圖像。我已經創建了IBOutlets爲每個這些,所以我可以在運行時更改圖像。UIImageView圖層順序

我現在想改變UIImageViews在運行時繪製的順序,所以後面的imageA現在繪製在其他所有東西之上。我怎樣才能改變圖層順序?我最初嘗試刪除所有的子視圖,並使用[self.view insertSubview: atIndex: ]來查看我是否可以改變繪製順序,但我的代碼崩潰。

任何人都可以告訴我這樣做的正確方法嗎?

在先進的感謝, 埃利奧特

回答

3

我猜你正在尋找這些UIView的方法:

1: exchangeSubviewAtIndex:withSubviewAtIndex: 交流子視圖在指定的指數。

- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2 

2: bringSubviewToFront: 移動指定子視圖,使得其出現在它的兄弟姐妹的頂部。

- (void)bringSubviewToFront:(UIView *)view 

3: sendSubviewToBack: 移動指定的子視圖,使其顯示它的兄弟姐妹後面。

- (void)sendSubviewToBack:(UIView *)view 

使用這些方法,你可以交換子視圖爲了得到一個UIView的出現在另外一個在其上海華......如果這就是你在問什麼....

+0

完美謝謝!我將在明天看看這些方法,因爲它們看起來像我正在尋找的東西。 –

+0

不錯。我從來沒有找過帶來/發送對。想想我必須手動完成。 – smparkes

+0

是的,它像一個魅力ta'工作! –

1

崩潰可能是因爲當你從其父中刪除圖像,其保留計數變爲零,被釋放。

如果您只是想交換兩個視圖,請參閱- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2 on UIView。如果你想做一個更復雜的交換,你可以刪除和讀取,只要確保你保留你刪除的視圖(ARC儘管)。

+0

是的,我有一種感覺,你是正確的,這是導致崩潰,我會嘗試與交換方法,因爲它應該做我所需要的。 –