从视图中删除所有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")