我有一个自定义视图,它是UIView
的子类。我在自定义视图中添加了一些子图层,但现在我想删除它们。
我试过这样做:
self.layer.sublayers = nil;
但这会删除所有内容,包括视图的初始子图层。
有没有办法实现这个目标?或者我每次都必须重新初始化一个新的自定义视图?
注意:App在iOS 7及更高版本中运行。
谢谢!
保持对添加的子图层的引用在不需要时从超级图层中删除子图层。
代码如下:
对象C:
[thesublayer removeFromSuperlayer]
迅速:
thesublayer.removeFromSuperlayer()
//thesublayer is the name of the layer you want to remove
从超级图层中删除特定图层的另一种方法是在layer.name
属性中指定唯一的字符串。您可以在以后比较以识别并删除它。
for layer in sublayers {
if layer.name == "masklayer" {
layer.removeFromSuperlayer()
}
}
我使用popLast()
在Swift 3中完成了它。
self.layer.sublayers?.popLast()