Créer un personnalisé animables propriété
Sur UIView
vous pouvez modifier la backgroundColour d'animation. Et sur un UISlideView
vous pouvez modifier la valeur d'animation.
Pouvez-vous ajouter une propriété personnalisée à votre propre UIView
sous-classe de sorte qu'il peut être animé?
Si j'ai un CGPath
dans mon UIView
alors je peux animer le dessin de celui-ci en modifiant le pourcentage de la voie.
Puis-je encapsuler que l'animation dans la sous-classe.
c'est à dire que j'ai un UIView
avec un CGPath
qui crée un cercle.
Si le cercle n'est pas là, il représente 0%. Si le cercle est complet il représente 100%. Je peux en tirer toute la valeur de modifier le pourcentage de la voie. Je peux également animer le changement (au sein de la sous-classe UIView) en animant le pourcentage de la CGPath
et redessiner le chemin.
Puis-je définir une propriété (pourcentage) sur la UIView
de sorte que je peux coller le changement dans un UIView animateWithDuration
bloc et animer le changement de pourcentage de la chemin?
J'espère que j'ai expliqué ce que j'aimerais bien faire.
Essentiellement, tout ce que je veux faire, c'est quelque chose comme...
[UIView animateWithDuration:1.0
animations:^{
myCircleView.percentage = 0.7;
}
completion:nil];
et le chemin d'accès du cercle animer un pourcentage donné.
Vous devez vous connecter pour publier un commentaire.
Si vous étendez CALayer et de mettre en œuvre votre personnalisé
Vous pouvez faire un animables propriété en substituant
needsDisplayForKey
(dans votre personnalisé CALayer classe) comme ceci:Bien sûr, vous devez également avoir une
@property
appelépercentage
. À partir de maintenant, vous pouvez animer le pourcentage de la propriété à l'aide de core animation. Je n'ai pas vérifier si il fonctionne en utilisant la[UIView animateWithDuration...]
appeler ainsi. Cela pourrait fonctionner. Mais cela a fonctionné pour moi:Oh, et à utiliser
yourCustomLayer
avecmyCircleView
, faites ceci:- (void) drawInContext:(CGContextRef) context
? Est-ce là une nouvelle propriété personnalisée serait-il dessiné? Merci à l'avance.Complète Swift 3 exemple:
Il y a une grande objc article ici, qui va dans les détails au sujet de la façon dont cela fonctionne
Ainsi que d'un objc projet qui utilise les mêmes concepts ici:
Essentiellement une action(par couche:) sera appelée lorsqu'un objet est animé à partir d'un bloc d'animation, nous pouvons commencer nos propres animations avec les mêmes propriétés (vol de la propriété backgroundColor) et d'animer les changements.
@NSManaged
avecCGAffineTransform
?Pour ceux qui ont besoin de plus de détails sur ce comme je l'ai fait:
il est cool exemple d'Apple portant sur cette question.
E. g. grâce à lui j'ai constaté que vous n'avez pas besoin d'ajouter personnalisé de votre couche de sous-couche (comme @Tom van Zummeren l'indique). Au lieu de cela, il suffit d'ajouter une méthode de classe à votre point de Vue de classe:
Espère que cela aide quelqu'un.
vous aurez à mettre en œuvre le pourcentage de la partie de vous-même. vous pouvez remplacer la couche de dessin code pour dessiner votre cgpath, en fonction de l'ensemble de la valeur en pourcentage. la caisse de la core animation guide de programmation et types d'animation et le calendrier guide