2016-02-10 39 views
0

如何才能獲得關於關鍵窗口的UIView的Z順序?UIView的iOS Z順序

層次深度對我沒有興趣。我不在乎關鍵窗口有多少個超級視圖。

只是想知道哪些視圖「靠近」用戶。

我已經試過各種可能性,如

hittesting 
view.layer.depth 
post-order DFS (Or some sort of variation) 

但由此產生的答案是在問候它的「環境」,而不是在屏幕上查看的實際「繪製順序」。

這是可能的合理的方式嗎?

回答

0

UIView兄弟姐妹按照將其添加到其超級視圖的順序進行堆疊。

您可以用下面的代碼檢查:

景觀之上: [parentView.subviews lastObject];

查看在底部: [parentView.subviews objectAtIndex:0];

如果你想有一個觀點出現在所有其他視圖前:

[parentView bringSubviewToFront:view] 
+1

我知道這一點。但它並不能保證一個人在層次結構中的表親觀點上高於另一個。 –

+1

此外,視圖可以清晰,底層視圖可見。我只對用戶實際可見的視圖感興趣。我不是創建視圖繼承人achy。我正在檢查視圖層次結構。 –

0

其中視圖出現在子視圖中的順序數組確定他們的Z順序。如果在使用addSubView()查看B之前添加視圖A,則視圖B將位於視圖A之上。