2013-02-12 41 views
2

從視圖的主層去除最深子層的方法是什麼?應該很簡單,我對iOS很新。如何從視圖中刪除最深的子圖層?

+0

最深處,你的意思是後面的那個?或者你的意思是最深的view.sublayers.sublayers ....等,直到你不能再去 – Bergasms 2013-02-12 03:44:45

回答

6

如果你真的是在層(未查看),你可以試試這個還有:

[[view.layer.sublayers objectAtIndex:0] removeFromSuperlayer]; 

如果你想刪除的後視圖,而不是,您可以使用類似:

[[view.subviews objectAtIndex:0] removeFromSuperview]; 

當然,如果你真的想除去最深子/子視圖,包括那些孩子的意見,你必須做這樣的事情:

CALayer *layer = view.layer; 
while ([layer.sublayers count] > 0) { 
    layer = [layer.sublayers objectAtIndex:0]; 
} 
[layer removeFromSuperlayer]; 

不過,這似乎是一個壞主意。如果你真的想找到,我建議重新考慮你實際上在尋找什麼。

+0

好吧,這個工程。我想我只是把自己弄糊塗在iOS中的圖層模式。 – jab 2013-02-12 04:24:17

3

如果你指的是背面最子視圖,使用:

UIView *subViewToBeRemoved = [mainView.subviews objectAtIndex:0]; 
[subViewToBeRemoved removeFromSuperview]; 

mainView.subviews將在其可見的順序返回視圖的子視圖的排列在屏幕上。

如果最深你的意思是最前查看您可以在後面使用

UIView *subViewToBeRemoved = [mainView.subviews lastObject]; 
[subViewToBeRemoved removeFromSuperview];