Sto tentando di mascherare un UIView quadrato con un CAShapeLayer circolare in rapido. Ho il seguente:Maschera Swift del livello cerchio su UIView
var snapFrame = self.snapButton.frame
var innerFrame = CGRect(x: snapFrame.minX + 1, y: snapFrame.minY + 1, width: snapFrame.width - 2, height: snapFrame.height - 2)
maskLayer = CAShapeLayer()
var circlePath = UIBezierPath(roundedRect: innerFrame, cornerRadius: innerFrame.width)
maskLayer.path = circlePath.CGPath
maskLayer.fillColor = UIColor.clearColor().CGColor
shutterOverlay = UIView()
shutterOverlay.frame = innerFrame
shutterOverlay.backgroundColor = BUBConstants.primaryColor_blue
self.view.addSubview(shutterOverlay)
self.view.layer.addSublayer(maskLayer)
shutterOverlay.layer.mask = maskLayer
Se io commento le ultime due righe, sia il livello e la vista appaiono nei posti corretti e le dimensioni corrette. Tuttavia, l'aggiunta dell'ultima riga fa sì che sia la vista che il livello non vengano mostrati.
Inoltre, ho bisogno di farlo in questo modo come il mio obiettivo finale è quello di avere un'animazione in cui il quadrato UIView riempie il cerchio. Non posso mostrare solo una vista circolare.
Qualcuno può indicarmi dove sto andando male?