Non riesco a rimuovere l'animazione dalla proprietà strokeEnd
del mio CAShapeLayer.Posso modificare una proprietà strokeEnd senza animazione?
La documentazione dice che la proprietà è animatable
ma non è animata di default e non riesco a individuare il problema. Qualche suggerimento dove cercare?
Ecco il mio codice:
class ViewController: UIViewController {
let circle = CAShapeLayer()
override func viewDidLoad() {
super.viewDidLoad()
// Circle
circle.fillColor = UIColor.clearColor().CGColor
circle.strokeColor = UIColor.blackColor().CGColor
circle.lineWidth = 10
circle.strokeEnd = 0
circle.lineJoin = kCALineJoinRound
circle.path = UIBezierPath(ovalInRect: CGRectMake(60, 140, 200, 200)).CGPath
circle.actions = ["strokeEnd" : NSNull()]
// Show Button
let showButton = UIButton(frame: CGRectMake(40, 40, 240, 40))
showButton.addTarget(self, action: "showButton", forControlEvents: UIControlEvents.TouchUpInside)
showButton.setTitle("Show circle", forState: UIControlState.Normal)
showButton.backgroundColor = UIColor.greenColor()
// Add to view
self.view.layer.insertSublayer(circle, atIndex: 1)
self.view.addSubview(showButton)
}
func showButton() {
circle.strokeEnd = 1
}
}
Qual è il punto di 'circle.actions = [" strokeEnd ": NSNull()]'? – idmean
Apparentemente il CAShapeLayer ha azioni predefinite (animazioni) per le sue proprietà .. – Tieme
- Rimossa la soluzione dalla domanda e l'ha aggiunta alla risposta di seguito .. – Tieme