2016-12-26 1 views
0

J'ai essayé d'ajouter un CALayer dans ma fonction addLayer:Impossible de supprimer une sous-couche de AVSynchronizedLayer

@IBAction func addLayer(_ sender: UIButton){ 
    self.layer = (self.cxeObject?.layer)! 
    self.synchLayer = AVSynchronizedLayer(playerItem: self.playerItem!) 
    self.synchLayer!.bounds = self.playerView.layer.bounds 
    self.synchLayer!.position = self.playerView.layer.position 
    self.synchLayer!.addSublayer(self.layer!) 
    self.playerView.layer.addSublayer(self.synchLayer!) 
} 

puis j'ai essayé d'enlever la couche dans mon removeLayer fonction:

@IBAction func removeLayer(_ sender: UIButton) { 
    self.layer.removeFromSuperlayer() 
} 

mais ça n'a pas marché! Quand j'ai essayé de le faire, il a travaillé:

self.synchLayer.removeFromSuperlayer() 

mais je ne peux pas faire cela, parce que j'ai quelques sous-couches self.synchLayer. Quelqu'un peut-il m'aider? Merci!

Répondre

0

Je réponds à ma question, Quand j'ai couru l'application sur mon iPhone, cela a fonctionné. le code fonctionne bien: @IBAction func removeLayer(_ sender: UIButton) { self.layer.removeFromSuperlayer() } Mais je ne sais pas pourquoi. Peut-être, AVSynchronizedLayer ne fonctionne pas sur le simulateur, mais fonctionne sur un périphérique.