如何知道要删除哪个子层?
How to know which subLayer to remove?
我有下面这行代码,旨在防止子图层显示在另一个 post 内容之上的问题。在用户退出 post 时调用此行被激活的方法。
newBaseP3FolderLayer.layer.sublayers?.remove(at: 1)
但现在,我认为由于这段代码,有些情况下另一个视频会突然覆盖所有其他图像。
我注意到只有当子层的数量为 14 时才会发生这种情况。(这对于高于此的数字也可能是正确的)在离开 post 时打印子层的数量时我注意到代码有效很好(对于 10 或 11 和 12 之类的值),直到子视图的数量达到 14。
我该如何解决这个问题?
这种方法会更好
for sublayer in sublayers {
if sublayer.name == "yourLayerName" {
sublayer.removeFromSuperlayer()
}
}
在创建它时将 reference
存储到要删除的 layer
并使用该 reference
从其 superLayer
中删除 layer
,即
var yourLayer: CALayer?
view.layer.sublayers?.forEach({ (layer) in
if layer == yourLayer {
yourLayer?.removeFromSuperlayer()
}
})
如果您不想使用图层名称,请尝试记录此:
NSLog(@"%@",self.playerLayer.player.currentItem.asset);
您将看到以下内容:
AVURLAsset: 0x60000063bac0, URL = file:///Temp/Loops/088_JB_HD.mov
然后您可以确定资产的实际名称和 URL。
我有下面这行代码,旨在防止子图层显示在另一个 post 内容之上的问题。在用户退出 post 时调用此行被激活的方法。
newBaseP3FolderLayer.layer.sublayers?.remove(at: 1)
但现在,我认为由于这段代码,有些情况下另一个视频会突然覆盖所有其他图像。
我注意到只有当子层的数量为 14 时才会发生这种情况。(这对于高于此的数字也可能是正确的)在离开 post 时打印子层的数量时我注意到代码有效很好(对于 10 或 11 和 12 之类的值),直到子视图的数量达到 14。
我该如何解决这个问题?
这种方法会更好
for sublayer in sublayers {
if sublayer.name == "yourLayerName" {
sublayer.removeFromSuperlayer()
}
}
在创建它时将 reference
存储到要删除的 layer
并使用该 reference
从其 superLayer
中删除 layer
,即
var yourLayer: CALayer?
view.layer.sublayers?.forEach({ (layer) in
if layer == yourLayer {
yourLayer?.removeFromSuperlayer()
}
})
如果您不想使用图层名称,请尝试记录此:
NSLog(@"%@",self.playerLayer.player.currentItem.asset);
您将看到以下内容:
AVURLAsset: 0x60000063bac0, URL = file:///Temp/Loops/088_JB_HD.mov
然后您可以确定资产的实际名称和 URL。