Bep*_*o66 47 objective-c calayer ios
在动画中,我在视图中添加了许多子图层,其中:
[self.view.layer addSublayer:layer1];
[self.view.layer addSublayer:layer2];
Run Code Online (Sandbox Code Playgroud)
....
我想通过一个动作删除所有子图层.我已经尝试过这个类似问题的建议:
rootLayer.sublayers = nil;
Run Code Online (Sandbox Code Playgroud)
但它不起作用......
你可以帮帮我吗?比你!
Sve*_*sen 132
对象的sublayers属性CALayer返回数组的副本.设置它不是零没有关于子层.然而,这将做:
for (CALayer *layer in self.view.layer.sublayers) {
[layer removeFromSuperlayer];
}
Run Code Online (Sandbox Code Playgroud)
或者,在斯威夫特
self.view.layer.sublayers?.forEach { $0.removeFromSuperlayer() }
Run Code Online (Sandbox Code Playgroud)
小智 20
这对我有用并修复了崩溃:
[self.view.layer.sublayers makeObjectsPerformSelector:@selector(removeFromSuperlayer)]
Run Code Online (Sandbox Code Playgroud)
我用我的图像改变了视图,UImageview崩溃消失了.
Har*_*cha 19
Swift 3.0和Swift 4.0
将sublayers属性设置为nil从视图中删除所有子图层.
view.layer.sublayers = nil
Run Code Online (Sandbox Code Playgroud)
你也可以添加
.removeAll()
Run Code Online (Sandbox Code Playgroud)
对于 swift5,从添加的视图中删除 CAShapeLayer
guard let sublayers = self.view.layer.sublayers else { return }
for sublayer in sublayers where sublayer.isKind(of: CAShapeLayer.self) {
sublayer.removeFromSuperlayer()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50171 次 |
| 最近记录: |