Vous ne savez pas exactement quel type de forme et quel type d'animation. Si vous avez juste besoin d'une forme de base comme un carré, un rectangle ou un cercle, vous pouvez éviter de surcharger drawRect et simplement utiliser un CALayer - en l'ajoutant à la hiérarchie de couches de votre cellule. Pour les autres formes, vous pouvez faire la même chose avec un calque de forme.
Vous devez envisager drawRect pour dessiner le contenu de la vue à ne pas animer. C'est bien si vous voulez rendre la vue avec drawRect, mais si vous ne faites que déplacer la forme, animez le centre de la vue ou la position du calque à la place. Si vous voulez utiliser Core Animation avec drawRect (je le déconseille), vous devrez probablement animer une propriété personnalisée que vous utiliserez dans votre drawRect, mais je parie ce que vous essayez de faire peut être fait plus simple sans drawRect. Les couches sont votre ami et peuvent vous aider dans beaucoup de situations. Peut-être élaborer sur ce que vous essayez de faire et quelqu'un peut vous offrir une solution plus complète.
Cordialement.
True, mais vous pouvez également utiliser CoreAnimation [layer presentationLayer] pour obtenir les propriétés actuelles du calque en cours de dessin:] –