从视图的主层中删除最深的子层的方法是什么?应该很简单,我对iOS很陌生。
问问题
4684 次
2 回答
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];
不过,这似乎是个坏主意。如果您真的在寻找它,我建议您重新考虑您真正在寻找什么。
于 2013-02-12T04:07:08.583 回答
3
如果您的意思是最后面的子视图,请使用:
UIView *subViewToBeRemoved = [mainView.subviews objectAtIndex:0];
[subViewToBeRemoved removeFromSuperview];
mainView.subviews 将按其在屏幕上的可见顺序返回视图的子视图数组。
如果最深是指可以使用的最前面的视图
UIView *subViewToBeRemoved = [mainView.subviews lastObject];
[subViewToBeRemoved removeFromSuperview];
于 2013-02-12T04:01:16.120 回答