在一个动画中,我向 view 添加了很多 sublayers,其中:
[self.view.layer addSublayer:layer1];
[self.view.layer addSublayer:layer2];
....
我想通过一个 Action 删除所有子层。 我已经尝试过提出类似问题的建议:
rootLayer.sublayers = nil;
但它不起作用......
你能帮帮我吗? 比你!
最佳答案
CALayer
对象的sublayers
属性返回数组的副本。将其设置为 no nil 对子层没有任何作用。然而,这会做:
for (CALayer *layer in self.view.layer.sublayers) {
[layer removeFromSuperlayer];
}
或者,在 Swift 中
self.view.layer.sublayers?.forEach { $0.removeFromSuperlayer() }
https://stackoverflow.com/questions/10789766/