[英]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.