Question

J'ai deux sous-classes CALayer, chacune avec son propre dessin DrawLayer: (CALayer *) layer inContext: (CGContextRef) ctx delegate. Il s’agit de simples calques (certaines formes monochromes dessinées avec des tracés de synthèse), mais j’ai besoin de redimensionner environ 12 instances simultanément et je rencontre des problèmes de cadence. J'ai marqué toutes les couches comme opaques pour tenter de libérer des cycles et j'ai essayé d'utiliser des animations de base implicites et explicites (sur la propriété bounds), ainsi que d'affecter des matrices CA3DTransform à la propriété transform.

Est-ce que quelqu'un connaît un bon moyen de redimensionner rapidement des objets tout en maintenant une bonne cadence?

Était-ce utile?

La solution

Cela ne semble pas dépasser les capacités de l'iPhone.

Une solution pourrait être de les rendre à une image et d’échelle qui? C’est (plus ou moins) ce que CoreAnimation ferait. Il semble cependant que vous ayez un défaut - vous devriez peut-être poster votre code et les gens pourraient le consulter.

Où effectuez-vous le rafraîchissement et que redessinez-vous?

Autres conseils

Je suis d'accord avec Roger.

Vérifiez à quelle fréquence vos drawLayer:inContext: méthodes (ou tout ce que vous utilisez pour dessiner) sont appelées. Un simple NSLog peut accomplir cela. Si vous les appelez constamment, considérez l’idée de Roger de restituer une image et de la redimensionner.

Vous devrez probablement utiliser les outils de performance pour trouver votre goulot d'étranglement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top