CABasicAnimation ke jalur perilaku aneh [duplikat]

Saya menggunakan CABasicAnimation untuk menganimasikan dari jalur ke jalur lainnya.

Saya telah membuat tampilan topeng dengan cara ini:

 class Mask: UIView {

     func setup() {
       self.path = UIBezierPath(roundedRect: CGRectMake(0.0, 0.0, self.frame.width, self.frame.height), cornerRadius: 0.0)
       self.path.usesEvenOddFillRule = true
       self.fillLayer.fillColor = self.color.CGColor
       self.fillLayer.opacity = self.opacity
       self.fillLayer.fillRule = kCAFillRuleEvenOdd
       self.layer.addSublayer(self.fillLayer)
       self.holePath = self.getHolePath(frame: frame, center: center, shape: shape, diameter: diameter)
       self.path.appendPath(self.holePath)
       self.fillLayer.path = self.path.CGPath
     }

     func animate() {
       let animation = CABasicAnimation(keyPath: "path")
       animation.duration = duration
       animation.fromValue = self.path.CGPath
       animation.toValue = self.nextPath()
       animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
       animation.fillMode = kCAFillModeForwards
       animation.removedOnCompletion = false
       self.fillLayer.addAnimation(animation, forKey: nil)
     }

}

Memanggil fungsi animate dengan bentuk yang sama tidak ada masalah. Jika tidak memanggil animate dengan bentuk lubang yang berbeda, saya mendapatkan perilaku aneh pada animasi (gif)

Ada saran?

masukkan deskripsi gambar di sini


person Luca Davanzo    schedule 18.10.2016    source sumber