簡體   English   中英

如何從視圖中刪除最深的子圖層?

[英]How to remove deepest sublayer from view?

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

如果你真的是指后面的圖層(不是視圖),你也可以試試這個:

[[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];

不過,這似乎是一個壞主意。 如果你真的在尋找它,我建議你重新考慮你真正想要的東西。

如果您的意思是最后面的子視圖,請使用:

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

mainView.subviews將在屏幕上以可見順序返回視圖子視圖的數組。

如果最深,則表示您可以使用的最前面的視圖

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM