2013-09-05 123 views
3

如果我使用for循環;UIView子視圖的順序?

for(UIView *subview in [myView subviews]) 

哪個順序,子視圖帶來了?

根據他們添加的順序或別的東西?

+5

別的東西。你只需要啓動[官方文檔](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816- CH3-SW17),你很容易找到它。 – 2013-09-05 12:24:39

+0

但你也可以檢查UIClass,例如if([subView isKindOfClass:[UILabel class]])// Check是SubView類是UILabel類嗎? { //你可以在這裏爲你的UILabel編寫代碼; } – iPatel

+5

@iPatel我不明白這與問題有什麼關係。 – 2013-09-05 12:26:39

回答

8

正如文檔所述,它反映了它們在屏幕上的可見順序。

@屬性(非原子,只讀副本)的NSArray *子視圖

討論

您可以使用此屬性檢索與 自定義視圖層次結構相關聯的子視圖。數組 中子視圖的順序反映了它們在屏幕上的可見順序,索引0 的視圖是最靠後的視圖。

對於UIKit中和其他系統框架中聲明覆雜的視圖,該視圖的任何 子視圖通常被認爲是專用的,並且在任何時候 變化。因此,您不應嘗試檢索或修改這些類型的系統提供的視圖的子視圖。如果這樣做, 您的代碼可能在未來的系統更新期間中斷。

+0

我可能並不擅長英語,但什麼是「有形命令」?它是如何計數的?什麼是最後面?哪一方最後面?這是否意味着子視圖添加到他們的超級視圖的順序? –

+1

舊的問題和評論,但@AndreyChernukha,意思是從觀衆最遠的視角看,3D層次結構的底部。添加視圖時,它們會被添加到堆棧的頂部,因此除了明確的重新排序之外,順序與添加順序幾乎相同。 –

+0

@ChrisConover謝謝你,哥們。這就說得通了 –

0

我覺得它很有用,在我的經驗中,它放置了subviews以便它們被添加。使用UIScrollView時請小心使用它們。我偶爾碰到了爲幻燈片條創建的'幽靈'subviews