J'utilise deux CGAffineTransforms simples pour redimensionner une UIView circulaire, mais je voudrais pouvoir accéder dynamiquement au rayon dans touchesBegan() pendant que l'animation est en cours et vérifier si il est égal à une certaine valeur à ce moment-là.Comment accéder au rayon dynamiquement pendant l'animation? (possible pendant CGAffineTransform)
La difficulté est que je dois vérifier le rayon pendant que l'animation est encore en cours. Je ne suis pas complètement vendu sur l'approche CGAffineTransforms, donc je suis plus qu'heureux d'animer le cercle d'une autre manière si cela veut dire pouvoir accéder au rayon. Je vous remercie!
Je ne sais pas comment faire cela. Voici mon code ci-dessous (conseils bienvenus!):
func grow() {
UIView.animateWithDuration(2.3, delay: 0.0,
options: UIViewAnimationOptions.CurveEaseIn,
animations: {
self.circle2.transform = CGAffineTransformMakeScale(1.5, 1.5)
},
completion: ({ finished in
if (finished) {
self.shrink()
}
}))
}
func shrink() {
UIView.animateWithDuration(2.3, delay: 0.0,
options: UIViewAnimationOptions.CurveEaseInOut,
animations: {
self.circle2.transform = CGAffineTransformMakeScale(0.5, 0.5)
},
completion: ({ finished in
if (finished) {
self.grow()
}
}))
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/*
if radius == certain value
{
//do something
}
*/
}
duplication possible de [Comment obtenir la taille réelle de CALayer transformé?] (Http://stackoverflow.com/questions/5537586/how-to-get-the-actual-size-of-transformed-calayer) – jtbandes