如何从视图中删除最深的子图层?

jab*_*jab 2 cocoa objective-c calayer ios

从视图的主图层中删除最深的子图层的方法是什么?应该很简单,我对iOS很新.

Ale*_*ing 6

如果你真的是指后面的图层(不是视图),你也可以试试这个:

[[view.layer.sublayers objectAtIndex:0] removeFromSuperlayer];
Run Code Online (Sandbox Code Playgroud)

如果要删除后视图,可以使用类似的:

[[view.subviews objectAtIndex:0] removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)

当然,如果您真的想要删除最深的子图层/子视图,包括子视图的子图层,则必须执行以下操作:

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

不过,这似乎是一个坏主意.如果你真的在寻找它,我建议你重新考虑你真正想要的东西.