2011-02-27 48 views
4

我帶來了控制來說,與下面的代碼:關於bringSubviewToFront

[self.view bringSubviewToFront:control]; 

我怎麼能兩個控件之間的認識;哪一個是在前面和哪一個是在背面

回答

4

你將檢查超級視圖中的視圖的順序(控件的情況,在你的情況下self.view)subviews屬性。

superview的子視圖中索引0處的視圖是最後面的視圖,然後索引1處的視圖將位於其上,並且索引2處的視圖將位於視圖頂部指數等
(基本上,一個視圖在與其自己的索引相比具有較小索引的視圖之上)

NSInteger indexOfControl1 = [[self.view subviews] indexOfObject:control1]; 
NSInteger indexOfControl2 = [[self.view subviews] indexOfObject:control2]; 
if (indexOfControl1 > indexOfControl2) { 
    //control1 is on top of control2 
} 
2

如果這些控制具有相同的父查看他們的z順序是由它們的索引在subviews陣列限定:

子視圖:的順序數組中的子視圖反映了他們在屏幕上的可見順序 ,其中索引0 是最後面的視圖。

所以你的步驟將是:
1.使用控制
2.獲取其指標在父母的子視圖數組(使用indexOfObject:法)
3.控制與更大的指數是在前面