2010-12-13 6 views
3

J'ai des problèmes avec ma fonction UIView sous-classe 'drawRect:. J'utilise CGContextDrawRadialGradient() dedans, et il. Lorsque l'utilisateur fait glisser mon UIView, il a du mal à suivre si j'inclue le dégradé. Utilisation de Time Profiler Je vois que littéralement> 98% de mon temps est passé dans ma méthode de sous-classe drawRect :.drawRect: speed et CGContextDrawRadialGradient (super lent?)

Premièrement: l'utilisation d'une image statique d'un dégradé serait-elle plus rapide? Deuxièmement: y a-t-il un moyen d'accélérer cela? Puis-je mettre en cache le dégradé en quelque sorte? cela ne change pas grand-chose mais les chemins qui le traversent et qui le croisent changent lorsque vous faites glisser le UIView.

Si quelqu'un connaît un guide général sur la façon de faire des méthodes drawRect: ne pas aspirer tous les cycles de processeur, ce serait génial.

Répondre

0

J'ai le même problème. Une solution consiste à dessiner un gradient plus petit et à l'agrandir. Les résultats ne sont pas parfaits, mais plus rapides.

Voir également les idées mentionnées dans this answer.