J'essaie d'utiliser un CALayer avec une image comme contenu pour masquer un UIView. Pour le masque, j'ai une image png complexe. Si j'applique l'image en tant que view.layer.mask, j'obtiens le comportement inverse de ce que je veux. Y a-t-il un moyen d'inverser CAlayer? Voici mon code:Inverser un masque CALayer
layerMask = CALayer()
guard let layerMask = layerMask else { return }
layerMask.contents = #imageLiteral(resourceName: "mask").cgImage
view.layer.mask = layerMask
// What I would like to to is
view.layer.mask = layerMask.inverse. // <---
Je l'ai vu plusieurs messages sur CAShapeLayers inverses et les chemins mutables, mais rien où je peux renverser un CALayer. Ce que je peux faire est d'inverser l'image dans Photoshop afin que l'alpha soit inversé, mais le problème avec cela est que je ne serai pas capable de créer une image avec la taille exacte pour s'adapter à toutes les tailles d'écran. J'espère que cela a du sens.
"J'espère que cela a du sens." Ce n'est pas le cas. L'implication est que vous avez dessiné votre image de masque "en arrière" en premier lieu. Eh bien, c'était idiot. Pourquoi ne pas dessiner l'image du masque correctement pour commencer? – matt
Le problème avec cela est que le masque a une taille fixe au centre de la fenêtre de la clé. Si je devais dessiner le masque "correct" dans Photoshop, je n'obtiendrais jamais le masque pour fonctionner sur toutes les tailles d'écran. Donc, j'utilise le logo de mon entreprise comme masque, que j'ai besoin de dessiner à partir de la vue principale – arvidurs
Non, je ne suis pas. Pourquoi cela fonctionnerait-il si vous commencez avec le masque _your_ mais ne fonctionne pas si vous commencez avec le masque _correct_? – matt