Utilisez le masque de calque pour rendre certaines parties de l'UIView transparentes?

J'ai un UIViewController avec une couleur de fond rouge de son self.view . Je veux placer un UIImageView au centre de l'écran. Le spectacle UIImageView couvre tout l'écran et sa couleur de fond doit être bleue. Il devrait y avoir une image de 100 x 100 au centre lorsqu'il agit comme un masque. L'image est un png avec des parties transparentes et non transparentes. En utilisant cette image comme masque l'arrière-plan devrait être visible à travers les parties non transparentes de ce png. Ça devrait ressembler à ça:

entrez la description de l'image ici

Voici une démo à quoi cela ressemble dans une application.

Voici ce que j'ai fait:

 self.view.backgroundColor = UIColor.redColor() let imageView = UIImageView(frame: self.view.frame) imageView.backgroundColor = UIColor.blueColor() let maskImage: UIImage = UIImage(named: "twitterIcon")! mask = CALayer() mask?.contents = maskImage.CGImage mask?.contentsGravity = kCAGravityResizeAspect mask?.bounds = CGRect(x: 0, y: 0, width: 100, height: 100) mask?.anchorPoint = CGPoint(x: 0.5, y: 0.5) mask?.position = CGPoint(x: imageView.frame.size.width/2, y: imageView.frame.size.height/2) imageView.layer.mask = mask! self.imageView = imageView self.view.addSubview(imageView) 

Et voici le résultat:

entrez la description de l'image ici

Je veux atteindre exactement le contraire. L'image doit être au centre de la taille 100 x 100. La partie non transparente de l'image doit être le masque qui doit être la vue derrière (rouge dans ce cas). Le rest de l'écran doit être recouvert de bleu.

Edit: Voici l'image que j'utilise.

Comment puis je faire ça?

Pouvez-vous partager votre image?

MODIFIER:

Après avoir regardé le code de démo. Votre approche ne fonctionnera pas de la même manière. Son arrière-plan est une image.

Essayez ce qui suit:

1- Dans votre App Delegate, rendez la couleur d'arrière-plan de la window bleue.

 self.window?.backgroundColor = UIColor.blueColor() 

Remplacez votre code par ce qui suit:

 self.view.backgroundColor = UIColor.redColor() let maskImage: UIImage = UIImage(named: "twitterIcon")! mask = CALayer() mask?.contents = maskImage.CGImage mask?.contentsGravity = kCAGravityResizeAspect mask?.bounds = CGRect(x: 0, y: 0, width: 100, height: 100) mask?.anchorPoint = CGPoint(x: 0.5, y: 0.5) mask?.position = CGPoint(x: self.view.frame.size.width/2, y: self.view.frame.size.height/2) self.view.layer.mask = mask!