2011-05-04 2 views
0

J'ai une CALayer avec une sous-couche CATextLayer. Lorsque j'applique une transformation ou que je redimensionne le Calayer, j'ai besoin que CATextLayer soit redimensionné dans les limites de son parent. Lors du redimensionnement, le CATextLayer doit également tronquer ses caractères sans déformer la proportion des caractères. Cet effet peut être vu dans Garageband pour iPad lorsque vous redimensionnez un clip dans la vue de la séquence (écran ci-dessous).Troncature animée de CATextLayer

Garageband screen

Dans ma tentative de redimensionner le CATextLayer au sein de son des limites de la couche parent, je dois:

  • définissez la propriété truncationMode de mon CATextLayer à kCATruncationMiddle.
  • définissez la propriété masksToBounds de mon CALayer
  • définir un rectangle de cadre par défaut pour CATextLayer (sinon il ne tire pas)

Voici ce qui arrive:

  • Quand j'applique une transformation animée à la couche parent (via un événement tactile), les caractères CATextLayer s'étirent et se déforment.
  • Lorsque la transformation animée se termine, le calque parent est redessiné. Le CATextLayer n'apparaît pas en dehors du calque parent, mais son rectangle de cadre reste à ce que je l'ai initialement défini.

Répondre

1

Ce qu'il semble que vous voulez faire est d'animer les deux CALayer « s et CATextLayer » s bounds propriété, pas leurs biens transform.