从视图中删除所有subLayers

在animation中,我在视图中添加了很多子图层 ,其中包括:

[self.view.layer addSublayer:layer1]; [self.view.layer addSublayer:layer2]; 

….

我想通过一个动作去除所有的子层。 我已经尝试了一个类似问题的build议:

 rootLayer.sublayers = nil; 

但它不工作…

你可以帮帮我吗? 比你!

CALayer对象的sublayers属性返回数组的一个副本。 设置它没有零没有任何关于子层。 然而,这将做到:

 for (CALayer *layer in self.view.layer.sublayers) { [layer removeFromSuperlayer]; } 

或者,在Swift中

 self.view.layer.sublayers?.forEach { $0.removeFromSuperlayer() } 

这为我工作,并修复了崩溃:

 [self.view.layer.sublayers makeObjectsPerformSelector:@selector(removeFromSuperlayer)] 

我用我的图像UImageview改变了视图,崩溃消失了。

迅速3.0

Sublayers属性设置为零。 从视图中删除所有subLayer。

 view.layer.sublayers = nil 

Swift 2.0:

  for layer: CALayer in self.view.layer.sublayers! { layer.removeFromSuperlayer() } 

要么

  self.view.layer.performSelector("removeFromSuperlayer")